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)
Другие вопросы по тегам