我想根据扩展名计算命令目录中的文件。 所以,我创建了一个包含cwd中所有文件的列表,然后是一个只包含扩展名的列表,然后我从该列表中创建了一个dict。我使用count参数创建了dict,但我不知道如何处理它。我的dict看起来像“{'txt':0,'doc':0}”。
import os,glob
def myfunc(self):
mypath=os.getcwd()
filelist=glob.glob("*") #list with all the files in cwd
extension_list=[os.path.splitext(x)[1][1:] for x in filelist] #make list with the extensions only
print(extension_list)
count=0;
mydict=dict((x,count) for x in extension_list) #make dict with the extensions as keys and count as value
print(mydict)
for i in mydict.values(): #i must do sth else here..
count+=1
print(count)
print(mydict)
答案 0 :(得分:2)
你肯定只想在你的循环中使用count += i
吗?
虽然有一个很好的数据结构可以为您完成所有这些:collections.Counter
。
答案 1 :(得分:1)
这是collections.Counter类的完美用法:
>>> from collections import Counter
>>> c = Counter(['foo', 'foo', 'bar', 'foo', 'bar', 'baz'])
>>> c
2: Counter({'foo': 3, 'bar': 2, 'baz': 1})
>>>
答案 2 :(得分:0)
只需遍历扩展名列表并增加字典值:
for ext in extension_list:
mydict[ext] += 1