看板 Python 關於我們 聯絡資訊
各位板上的大大日安 我要寫一個程式是計算某特定資料夾下,某特定類型檔案的數量。 在這個實施案例中是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), 來自: 114.33.116.8 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1548318619.A.C9E.html
shadowfu: listdata是dataframe嗎? 01/24 16:33
rexyeah: 為什麼不用glob? 01/24 16:47
yimean: @s大,我是用open *.csv as csvfile做的 csv reader 01/24 17:31
yimean: @r大,不好意思小弟還很嫩不太明白您說的glob是什麼意思。 01/24 17:32
yimean: @r大,我剛剛查了一下,glob是把所有的檔案列出來。 01/24 17:34
yimean: 但我需要的是數量。 01/24 17:34
peter308: 我的感覺 用BASH-shell還比較容易 01/24 20:10
peter308: 我印象BASH-shell有很多和檔案資料夾有關的指令 01/24 20:11
dododavid006: 用 glob 列出檔案後取 len 就是數量了啊 01/24 22:09
alex13587: 同意d大 01/25 09:30
peter308: 如果你搭配Bash shell 只要兩行就解決 01/25 11:08
peter308: import os 01/25 11:09
peter308: os.system ("ls *.pdf | wc -l") 01/25 11:09
peter308: 不過 如果原po是要練習寫python 那就當我沒講XD 01/25 11:10
peter308: 可以把*.pdf 替換成其他的任意的檔案格式 *.doc *.txt 01/25 11:15
peter308: *.jpg *.png 01/25 11:16
yimean: 感謝d,a,p大,不過我現在的問題是,無法取得正確路徑。 01/25 11:41
yimean: 我的路徑是由使用者Key在CSV檔案中。 01/25 11:42
yimean: 而這個檔案的內容隨時會由使用者增加。 01/25 11:43
yimean: 我覺得我現在是用陣列思維在寫程式,串列似乎我還不能駕馭 01/25 11:52
Kazimir: 你用np讀進來 [:][1]應該就是你要的資料了吧 01/25 12:03
TitanEric: 這個我會用shell script 比較快~ 01/25 16:42