在python中通过文件扩展名获取总和

在python中通过文件扩展名获取总和,python,Python,新手问题在这里 我试图通过目录中的文件扩展名获取文件大小的总和。到目前为止,我正在使用此(via)的修改版本来计算它们 尝试使用os.path.getsize()然后使用sum()将它们相加,但要么得到零,要么得到错误 我错过了什么 我复制的代码如下: import os import collections extensions = collections.defaultdict(int) place = input('Type the directory path: ') for pat

新手问题在这里

我试图通过目录中的文件扩展名获取文件大小的总和。到目前为止,我正在使用此(via)的修改版本来计算它们

尝试使用os.path.getsize()然后使用sum()将它们相加,但要么得到零,要么得到错误

我错过了什么

我复制的代码如下:

import os
import collections
extensions = collections.defaultdict(int)

place = input('Type the directory path: ')

for path, dirs, files in os.walk(place):
   for filename in files:
       extensions[os.path.splitext(filename)[1].lower()] += 1

for key,value in extensions.items():
    print ('Extension: ', key, ' ', value, ' items')

仅替换参考代码中的一行:

import os
import collections
extensions = collections.defaultdict(int)

for path, dirs, files in os.walk('.'):
   for filename in files:
       # add file size to the extension dictionary item, instead of add 1 
       extensions[os.path.splitext(filename)[1].lower()] += os.path.getsize(os.path.join(path,filename))

for key,value in extensions.items():
    print 'Extension: %s, Size: %s' % (key, value)
你试过这个吗

import os
import collections
extensions = collections.defaultdict(int)
size = collections.defaultdict(int)

for path, dirs, files in os.walk('/'):
   for filename in files:
       extensions[os.path.splitext(filename)[1].lower()] += 1
       size[os.path.splitext(filename)[1].lower()] += os.path.getsize(path+os.sep+filename)

for key,value in extensions.items():
    print 'Extension: ', key, ' ', value, ' items'

for key,value in size.items():
    print 'Extension: ', key, ' ', value, ' size'

这是基于你的链接

请给我们一些代码。编辑!我试着这样写:os.path.splitext(filename)[1].lower(),但它不起作用,我发现我缺少了一些其他用户所展示的东西。啊,我明白了。那么.sep+文件名部分是什么呢?我从来没有想到过!谢谢,这个答案与我试图写的代码最接近,我仍然遇到与徐丁给出的答案相同的错误。这在一个较小的文件夹中工作,但是当我尝试C:/Users/Me时,它给了我一个FileNotFoundError,这个文件看起来是这样的:services.apps.microsoft.com/browse.6.2…dat-我将编写一个异常处理来忽略类似的内容,但是为什么它在添加代码之前工作,而在添加代码之后不工作,这让我很困惑。你能给出文件的完整路径吗?这似乎是一个极端情况。文件“C:\Python33\lib\genericpath.py”,第49行,在getsize return os.stat(filename).st_size FileNotFoundError:[WinError 3]系统找不到指定的路径:“C:/Users/Joh\\AppData\\Local\\Packages\\WinStore\u cw5n1h2txyewy\\AC\\Microsoft\\Windows Store\\Cache\\0\\0-Namespace-https”∺∯∯services.apps.microsoft.com∯浏览∯6.2.9200-1∯615∯恩美∯C∯美国∯名称空间∯个人计算机∯00000000-0000-0000-0000-000000000000∯00000000-0000-0000-0000-000000000000.日期'