Python 獲取目錄下的檔案列表,並自然排序

2021-10-09 02:31:35 字數 1582 閱讀 7386

方法 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 時...