亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python 函數 os.listdir 不顯示目錄中的所有文件

Python 函數 os.listdir 不顯示目錄中的所有文件

慕妹3146593 2022-10-11 21:14:09
我正在嘗試加載幾個文件,os.listdir但它會跳過幾個文件。directiy文件格式為:a_0.csva_1.csva_2.csv  ·  ·  ·a_25.csv但os.listdir唯一的文件0,1,10,11.. 編號為3,4,5...的文件不在輸出對象中。這是我的功能:def best_fit_from_attemp(self):    arr =[]    for i in os.listdir(self.path_to_files):        print("i",i)        if i[0] == 'f' and  i[1] == 'i' and i[2] == 't':            print("searching for smallest number... ",i)            arr.append(self.find_min_fitness(i))輸出:i fitness_gen_0.csvsearching for smallest number...  fitness_gen_0.csvi fitness_gen_1.csvsearching for smallest number...  fitness_gen_1.csvi fitness_gen_10.csvsearching for smallest number...  fitness_gen_10.csvi fitness_gen_11.csvsearching for smallest number...  fitness_gen_11.csv
查看完整描述

3 回答

?
四季花海

TA貢獻1811條經驗 獲得超5個贊

我的猜測是文件名都在那里,只是沒有按照您期望的順序。

文件名是字符串。它們根據字符串排序邏輯進行排序:想象將每個 0 替換為a ,將a每個 1 替換為 a b,將每個 2 替換為 ac等等,現在考慮如何按字母順序對字符串進行排序。普通的字符串排序不知道我們喜歡用最不重要的數字last來寫數字。在普通的字符串排序中,它確實是1, then 10, then 11——這類似于對字符串b, then ba, then進行排序bb,這是正確的字典排序。它會持續很長時間才能到達任何以開頭3的單詞(類似地,字典中以開頭的單詞d比以b)。

您可以研究執行“自然排序”的算法/包?;蛘撸扇〉淖罴炎龇ㄊ呛唵蔚匦迯臀募s定:確保文件名中嵌入的數字都具有相同的位數,必要時使用前導零(001、002等)。


查看完整回答
反對 回復 2022-10-11
?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

這似乎值得懷疑。


self.find_min_fitness(i)

好吧,我建議你嘗試這樣的事情。


下面的目錄包含編號的文件列表。


files = os.listdir("C:/Users/Danish/Documents/JavaScriptPrimerRepo/MyJSCodes")


for i in files:

    print(i)

這是下面的示例輸出。


00_BlankPage.html

01_DataType.html

02_LinkingExternalJsfile.html

02_Script.js

03_VariableMutation_cohersion.html

04_Operators.html

05_SampleCodeCalculatingBMI.html

注意:我在迭代之前將結果存儲在單獨的變量中,重要的是 fileName 首先以數字開頭。


查看完整回答
反對 回復 2022-10-11
?
泛舟湖上清波郎朗

TA貢獻1818條經驗 獲得超3個贊

我很確定問題出在函數self.find_min_fitness(i)上。在列出前幾個文件后,其中的某些部分必須導致程序中斷。

文件按名稱排序os.listdir()。它優先12列出文件時,這就是為什么所有以開頭的文件名1都首先列出的原因。

作為解決方案:也許嘗試注釋掉self.find_min_fitness(i)調用的這一行,看看問題是否仍然存在


查看完整回答
反對 回復 2022-10-11
  • 3 回答
  • 0 關注
  • 501 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號