我希望我的程序使用路径上传目录中的所有图像,我正在使用:
for subdirs, dirs, files in os.walk(args.imagesdirectory):
for file in files:
print("file is ",file)
path=subdirs+'/'+file
print("path is ",path)
img = Image.open(path)
所以我的问题是如何使程序始终按此顺序导入图像0001.jpg然后0002.jpg然后0003.jpg ...等,而不是随机的方式?先感谢您
如果你事先知道这些名字,你可以用range()
函数来做到这一点。
即
for filenum in range(len(files)):
img = open(filenum + ".jpg")
...
此外,使用with open(file) as f
然后使用f = open(file)
通常更好
假设您使用的是Py3.4或更高版本,那么pathlib模块对于这样的工作非常有用。它是标准发行版的一部分。
我的一个驱动器上有一个名为C:/ Camera / Selected的子目录。这就是我如何按数字顺序列出jpg图像。
>>> from pathlib import Path
>>> for p in sorted(list(Path('C:/Camera/Selected').glob('*.jpg'))):
... str(p)
...
'C:\\Camera\\Selected\\20150320_155849.jpg'
'C:\\Camera\\Selected\\20160905_184732.jpg'
'C:\\Camera\\Selected\\20170717_082735.jpg'
在你的情况下,你可以在for循环中使用img = Image.open(str(p))
。