各位大大日安。
小弟在前几天被合金钢模具砸中了头,突然发现问题所在。
并且把它解决了。想说放上来跟大家分享,一方面也帮自己做个纪录。
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']这样的值呢?
: 恳请大大解惑。
: 感谢。