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

看板Python作者 (溫柔殺手)時間5年前 (2019/01/24 16:30), 編輯推噓7(7015)
留言22則, 8人參與, 5年前最新討論串1/2 (看更多)
各位板上的大大日安 我要寫一個程式是計算某特定資料夾下,某特定類型檔案的數量。 在這個實施案例中是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

01/24 16:33, 5年前 , 1F
listdata是dataframe嗎?
01/24 16:33, 1F

01/24 16:47, 5年前 , 2F
為什麼不用glob?
01/24 16:47, 2F

01/24 17:31, 5年前 , 3F
@s大,我是用open *.csv as csvfile做的 csv reader
01/24 17:31, 3F

01/24 17:32, 5年前 , 4F
@r大,不好意思小弟還很嫩不太明白您說的glob是什麼意思。
01/24 17:32, 4F

01/24 17:34, 5年前 , 5F
@r大,我剛剛查了一下,glob是把所有的檔案列出來。
01/24 17:34, 5F

01/24 17:34, 5年前 , 6F
但我需要的是數量。
01/24 17:34, 6F

01/24 20:10, 5年前 , 7F
我的感覺 用BASH-shell還比較容易
01/24 20:10, 7F

01/24 20:11, 5年前 , 8F
我印象BASH-shell有很多和檔案資料夾有關的指令
01/24 20:11, 8F

01/24 22:09, 5年前 , 9F
用 glob 列出檔案後取 len 就是數量了啊
01/24 22:09, 9F

01/25 09:30, 5年前 , 10F
同意d大
01/25 09:30, 10F

01/25 11:08, 5年前 , 11F
如果你搭配Bash shell 只要兩行就解決
01/25 11:08, 11F

01/25 11:09, 5年前 , 12F
import os
01/25 11:09, 12F

01/25 11:09, 5年前 , 13F
os.system ("ls *.pdf | wc -l")
01/25 11:09, 13F

01/25 11:10, 5年前 , 14F
不過 如果原po是要練習寫python 那就當我沒講XD
01/25 11:10, 14F

01/25 11:15, 5年前 , 15F
可以把*.pdf 替換成其他的任意的檔案格式 *.doc *.txt
01/25 11:15, 15F

01/25 11:16, 5年前 , 16F
*.jpg *.png
01/25 11:16, 16F

01/25 11:41, 5年前 , 17F
感謝d,a,p大,不過我現在的問題是,無法取得正確路徑。
01/25 11:41, 17F

01/25 11:42, 5年前 , 18F
我的路徑是由使用者Key在CSV檔案中。
01/25 11:42, 18F

01/25 11:43, 5年前 , 19F
而這個檔案的內容隨時會由使用者增加。
01/25 11:43, 19F

01/25 11:52, 5年前 , 20F
我覺得我現在是用陣列思維在寫程式,串列似乎我還不能駕馭
01/25 11:52, 20F

01/25 12:03, 5年前 , 21F
你用np讀進來 [:][1]應該就是你要的資料了吧
01/25 12:03, 21F

01/25 16:42, 5年前 , 22F
這個我會用shell script 比較快~
01/25 16:42, 22F
文章代碼(AID): #1SINURoU (Python)
文章代碼(AID): #1SINURoU (Python)