FileNotFoundError при сортировке файлов по размеру
Я пытаюсь создать список имен файлов изображений, отсортированных по размеру файла:
path = '/home/onur/Desktop/dataset/'
images = sorted(os.listdir(path), key = os.path.getsize)
print(images)
Но я получаю такую ошибку:
Traceback (most recent call last):
File "/home/onur/Desktop/image-downloader.py", line 98, in <module>
images = sorted(os.listdir(path), key = os.path.getsize)
File "/usr/lib/python3.9/genericpath.py", line 50, in getsize
return os.stat(filename).st_size
FileNotFoundError: [Errno 2] No such file or directory: 'image_535.jpg'
Файл python НЕ находится в
/home/onur/Desktop/dataset/
. Это просто на рабочем столе, поэтому мне интересно, является ли это причиной ошибки. Если да, то как я могу это исправить?
1 ответ
Решение
Ты прав. Проблема в том, что os.path.getsize вызывает ошибку, если файл не существует. Поскольку ваш скрипт Python находится в
/home/onur/Desktop
и переданное имя файла просто
image_535.jpg
, ищет файл в каталоге рабочего стола. Поскольку файла нет,
os.path.getsize
вызывает ошибку. Вы можете запустить это, чтобы правильно проверить размер файла.
path = '/home/onur/Desktop/dataset/'
images = sorted(os.listdir(path), key=lambda f: os.path.getsize(os.path.join(path, f)))
print(images)