Как определить общий размер файла из списка путей к файлам в Python? - PullRequest
1 голос
/ 05 ноября 2019

Я пытаюсь написать программу, которая сообщает мне размеры всех моих файлов .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

И я не уверен, как это исправить. У кого-нибудь есть идея?

1 Ответ

1 голос
/ 05 ноября 2019

os.path.getsize принимает путь, а не список путей. Вы можете суммировать размеры по вашему списку следующим образом:

png_sizes = sum((os.path.getsize(p) for p in png_list))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...