方法 1
>>
>
import os
>>
> filelist = os.listdir(
'testdir'
)>>
> filelist
['test1.txt'
,'test10.txt'
,'test11.txt'
,'test2.txt'
,'test23.txt'
,'test28.txt'
]>>
> filelist.sort(key=
lambda x:
int(x[4:
-4])
)>>
> filelist
['test1.txt'
,'test2.txt'
,'test10.txt'
,'test11.txt'
,'test23.txt'
,'test28.txt'
]>>
>
方法 2>>
>
import os
>>
>
import natsort
>>
> filelist = os.listdir(
'testdir'
)>>
> filelist
['test1.txt'
,'test10.txt'
,'test11.txt'
,'test2.txt'
,'test23.txt'
,'test28.txt'
]>>
> filelist = natsort.natsorted(filelist)
>>
> filelist
['test1.txt'
,'test2.txt'
,'test10.txt'
,'test11.txt'
,'test23.txt'
,'test28.txt'
]>>
>
sort()和natsort()的區別:
sort()後是1、10、11、2、3、4…而natsort()結果是1,2,3…10,11
參考:python 獲取目錄下的檔案列表,並自然排序
方法3
import re
file_list = os.listdir(file_path)
file_list =
sorted
(file_list,key =
lambda i:
int(re.match(r'(\d+)'
,i).group())
)
輸出:
file_list: ['1.csv', '5.csv', '6.csv', '9.csv', '10.csv', '11.csv',...]
參考:python–列表中字串按照某種規則排序的方法 python 獲取當前目錄下的檔案目錄和檔名
os模組下有兩個函式 os.walk os.listdir 1 coding utf 8 23 import os 45 deffile name file dir 6for root,dirs,files in os.walk file dir 7print root 當前目錄路徑 8print ...
Python 簡單獲取目錄下的所有檔案
1.使用 os.walk import os path d test fns os.path.join root,fn for root,dirs,files in os.walk path for fn in files for f in fns print f結果 路徑或檔名為中文的話會顯示亂碼...
python獲取目錄下所有檔案的方法
os.walk 函式宣告www.cppcns.com walk top,topdown true,onerror none 1.引數top表示需要遍歷的目錄樹的路徑 2.引數topdown的預設值是 true 表示首先返回目錄樹下的檔案,然後在遍歷目錄樹的子目錄.topdown的值為 false 時...