作者yimean (溫柔殺手)
看板Python
標題[問題]某資料夾下某特定副檔名的檔案數計算
時間Thu Jan 24 16:30:17 2019
各位板上的大大日安
我要寫一個程式是計算某特定資料夾下,某特定類型檔案的數量。
在這個實施案例中是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