各位大大日安。
小弟在前幾天被合金鋼模具砸中了頭,突然發現問題所在。
並且把它解決了。想說放上來跟大家分享,一方面也幫自己做個紀錄。
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']這樣的值呢?
: 懇請大大解惑。
: 感謝。