-1

我正在尝试创建一个图像文件名列表,按文件大小排序:

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/. 它只是在桌面中,所以我想知道这是否是错误的原因。如果是这样,我该如何解决?

4

1 回答 1

1

你是对的。问题是os.path.getsize如果文件不存在会引发错误。因为你的 Python 脚本在/home/onur/Desktop并且传递给的文件名os.path.getsize是 just image_535.jpgos.path.getsize所以在你的 Desktop 目录中查找文件。由于文件不存在,因此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)
于 2021-09-26T01:49:51.720 回答