如何从 Python 中的文件路径列表中确定总文件大小?

How to determine total file sizes from a list of file paths in Python?

我正在尝试编写一个程序来告诉我桌面(以及桌面下的每个目录)中所有 .png 文件的文件大小,并尝试了这个:

import os, sys
rootdir = sys.argv[0]
png = []
for root, dirs, files in os.walk('/users/me/desktop'):
    for f in files:
        if os.path.splitext(f)[1] in ['.png']:
            png.append(os.path.join(root,f))
png_list = png
png_sizes = os.path.getsize(png_list)
print(png_sizes)

但我收到以下错误消息:

TypeError: stat: path should be string, bytes, os.PathLike or integer, not list

我不确定如何解决这个问题。有人有想法吗?

os.path.getsize 接受路径,而不是路径列表。您可以像这样对列表中的大小求和:

png_sizes = sum((os.path.getsize(p) for p in png_list))