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