python - 计数文件(不能计算字典中的值)

时间:2011-10-10 16:35:51

标签: python

我想根据扩展名计算命令目录中的文件。 所以,我创建了一个包含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)

3 个答案:

答案 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