作者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://webptt.com/cn.aspx?n=bbs/Python/M.1548318619.A.C9E.html
1F:→ shadowfu: listdata是dataframe吗? 01/24 16:33
2F:推 rexyeah: 为什麽不用glob? 01/24 16:47
3F:→ yimean: @s大,我是用open *.csv as csvfile做的 csv reader 01/24 17:31
4F:→ yimean: @r大,不好意思小弟还很嫩不太明白您说的glob是什麽意思。 01/24 17:32
5F:→ yimean: @r大,我刚刚查了一下,glob是把所有的档案列出来。 01/24 17:34
6F:→ yimean: 但我需要的是数量。 01/24 17:34
7F:推 peter308: 我的感觉 用BASH-shell还比较容易 01/24 20:10
8F:→ peter308: 我印象BASH-shell有很多和档案资料夹有关的指令 01/24 20:11
9F:→ dododavid006: 用 glob 列出档案後取 len 就是数量了啊 01/24 22:09
10F:推 alex13587: 同意d大 01/25 09:30
11F:推 peter308: 如果你搭配Bash shell 只要两行就解决 01/25 11:08
12F:→ peter308: import os 01/25 11:09
13F:→ peter308: os.system ("ls *.pdf | wc -l") 01/25 11:09
14F:→ peter308: 不过 如果原po是要练习写python 那就当我没讲XD 01/25 11:10
15F:推 peter308: 可以把*.pdf 替换成其他的任意的档案格式 *.doc *.txt 01/25 11:15
16F:→ peter308: *.jpg *.png 01/25 11:16
17F:→ yimean: 感谢d,a,p大,不过我现在的问题是,无法取得正确路径。 01/25 11:41
18F:→ yimean: 我的路径是由使用者Key在CSV档案中。 01/25 11:42
19F:→ yimean: 而这个档案的内容随时会由使用者增加。 01/25 11:43
20F:→ yimean: 我觉得我现在是用阵列思维在写程式,串列似乎我还不能驾驭 01/25 11:52
21F:推 Kazimir: 你用np读进来 [:][1]应该就是你要的资料了吧 01/25 12:03
22F:推 TitanEric: 这个我会用shell script 比较快~ 01/25 16:42