Re: [問題]某資料夾下某特定副檔名的檔案數計算

看板Python作者 (溫柔殺手)時間5年前 (2019/02/04 14:28), 編輯推噓0(002)
留言2則, 1人參與, 5年前最新討論串2/2 (看更多)
各位大大日安。 小弟在前幾天被合金鋼模具砸中了頭,突然發現問題所在。 並且把它解決了。想說放上來跟大家分享,一方面也幫自己做個紀錄。 def file_amount(file_type,listdata,row_amount): target_column=[] file_extension= '.'+file_type for J in range(1,row_amount): print(listdata[J][1]) if listdata[J][1]=='TRUE': k=0 for filename in os.listdir(listdata[J][0]): if filename.endswith(file_extension): k=k+1 target_column.insert(J,k) else: target_column.insert(J,0) return target_column 關鍵就在For 迴圈的寫法是錯的 Before: for filter in listdata[:][2]: After: for J in range(1,row_amount): 新手初入Python對於新的For寫法不太熟悉所造成的,感謝過去幾位大大熱心地回應。 ※ 引述《yimean (溫柔殺手)》之銘言: : 各位板上的大大日安 : 我要寫一個程式是計算某特定資料夾下,某特定類型檔案的數量。 : 在這個實施案例中是PDF : 我的程式碼片段 : def file_amount(file_type,listdata): : target_column=[] : file_extension= '.'+file_type : J=0 : for filter in listdata[:][2]: : print(filter) : if filter=='TRUE': : k=0 : for filename in os.listdir(listdata[J][0]): : if filename.endswith(file_extension): : k=k+1 : target_column.insert(J,k) : J=J+1 : else: : target_column.insert(J,0) : J=J+1 : return target_column : listdata的結構如下 : ['路徑', '計算filter'] : ['C:\', 'FALSE'] : ['D:\', 'TRUE'] : 以上的內容只是範例 : 目前我遇到的問題是listdata[:][2]並不等於 : ['計算Filter', FALSE, TRUE] : 而是['D:\','TRUE'] : 我有嘗試過改成listdata[2][:]也是一樣的結果 : 請問該如何取得['計算filter','FALSE','TRUE']這樣的值呢? : 懇請大大解惑。 : 感謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.98.141 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1549261734.A.06B.html

02/04 14:50, 5年前 , 1F
其實呢 python buildin 就有一個叫做 "glob"
02/04 14:50, 1F

02/04 14:51, 5年前 , 2F
前面推文有人推了XD
02/04 14:51, 2F
文章代碼(AID): #1SLzkc1h (Python)
文章代碼(AID): #1SLzkc1h (Python)