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

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

Links booklink

Contact Us: admin [ a t ] ucptt.com