2016-05-16 100 views
1

我是Python中的新成員,我正在研究讀取目錄(僅包含文件)中的所有文件的腳本。 我知道我可以用這樣的循環得到文件:Python - os.listdir的順序

for file in os.listdir("my directory"): 

或使用本語法文件的列表:

files = [f for f in os.listdir("my directory ")] 

的問題是,我得到了一個完全隨機的文件訂購。我使用sort命令解決了我的問題,使我的列表排序,但是,我仍然想知道:

Python如何對listdir方法返回的文件進行排序?

回答

2

這個問題已經討論了關於SO,例如,在這裏: Nonalphanumeric list order from os.listdir() in Python

看起來像Python返回爲使本地文件系統使用,你必須給他們之後進行排序。

+0

所以它不是完全隨機的。這對我沒有意義。如果該方法使用文件的日期或其在磁盤上的位置來返回列表,則更爲合理。 –

+0

通常,文件系統在其內部結構上重用條目以存儲新條目的數據。大部分他們返回的是(和'os.listdir()'給出的)實際上存儲在設備中的數據。 – Piranna