python文件讀取時(shí)順序錯(cuò)誤的問(wèn)題及解決
python文件讀取時(shí)順序錯(cuò)誤的問(wèn)題
文件讀取亂序問(wèn)題
文件操作的時(shí)候,經(jīng)常需要處理的往往不是一個(gè)單一的文件,所以需要對(duì)文件夾進(jìn)行遍歷處理。
這里會(huì)使用到listdir()函數(shù)獲取文件夾下所有文件的文件名列表
如圖:
但是獲取的順序并不是整齊的,在做數(shù)據(jù)對(duì)應(yīng)的時(shí)候可能會(huì)出現(xiàn)組合錯(cuò)誤的情況。
直接上代碼
對(duì)返回文件名列表的后綴進(jìn)行切割,只對(duì)文件名進(jìn)行數(shù)字比較排序
值得注意,如果出現(xiàn)字母可能會(huì)導(dǎo)致錯(cuò)誤!
import os def dir_name(path): file_list = os.listdir(path) file_list.sort(key=lambda x: int(x[:-4])) # 切割后綴以'.'為分界線(xiàn),按照‘.'左邊的數(shù)字從小到大排序(文件名不含字母) file_name_list = [] for i in range(len(file_list)): # 路徑拼接 file_name = path + '/' + file_list[i] # print(file_name) file_name_list.append(file_name) # 返回文件路徑列表 return file_name_list
傳入該函數(shù)一個(gè)文件夾路徑,函數(shù)返回包含路徑的文件名列表(順序排列)
文件路徑的拼接方式可以在函數(shù)中進(jìn)行修改,如果只需要文件名,可以將拼接部分進(jìn)行刪除
python讀取文件名亂序(徹底解決)
from natsort import ns, natsorted import os def file_sorting(path): ? ? list = os.listdir(path) ? ? files = natsorted(list,alg=ns.PATH) ? ? print(files)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python里的單引號(hào)和雙引號(hào)的有什么作用
在本篇文章里小編給大家分享的是一篇關(guān)于python里的單引號(hào)和雙引號(hào)的作用的相關(guān)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。2020-06-06淺談python3.x pool.map()方法的實(shí)質(zhì)
這篇文章主要介紹了python3.x pool.map方法的實(shí)質(zhì),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01python?pipreqs工具生成requirements.txt文件使用詳解
這篇文章主要為大家介紹了python?pipreqs工具生成requirements.txt文件使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12python自動(dòng)保存百度盤(pán)資源到百度盤(pán)中的實(shí)例代碼
這篇文章主要介紹了python自動(dòng)保存百度盤(pán)資源到百度盤(pán)中的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08python?numpy庫(kù)之如何使用matpotlib庫(kù)繪圖
Numpy的主要對(duì)象是同構(gòu)多維數(shù)組,它是一個(gè)元素表,所有類(lèi)型都相同,由非負(fù)整數(shù)元組索引,在Numpy維度中稱(chēng)為軸,這篇文章主要介紹了python?numpy庫(kù)?使用matpotlib庫(kù)繪圖,需要的朋友可以參考下2022-10-10python實(shí)現(xiàn)整數(shù)序列求和
這篇文章主要介紹了python實(shí)現(xiàn)整數(shù)序列求和,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07python使用tkinter實(shí)現(xiàn)自定義多參數(shù)對(duì)話(huà)框
Tkinter模塊是Python標(biāo)準(zhǔn)庫(kù)中的一部分,用于創(chuàng)建圖形用戶(hù)界面(GUI)應(yīng)用程序,它提供了一組工具和組件,用于創(chuàng)建窗口、按鈕、文本框等用戶(hù)界面元素,并且可以響應(yīng)用戶(hù)的輸入,本文將給大家講講python如何使用tkinter實(shí)現(xiàn)自定義多參數(shù)對(duì)話(huà)框2023-08-08