[问题]某资料夹下某特定副档名的档案数计算

楼主: 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