如何使用数字顺序将说明符路径中的图像上传到python

问题描述 投票:-1回答:2

我希望我的程序使用路径上传目录中的所有图像,我正在使用:

 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 ...等,而不是随机的方式?先感谢您

python python-3.x python-2.7
2个回答
3
投票

如果你事先知道这些名字,你可以用range()函数来做到这一点。

for filenum in range(len(files)):
    img = open(filenum + ".jpg")
    ...

此外,使用with open(file) as f然后使用f = open(file)通常更好


2
投票

假设您使用的是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))

© www.soinside.com 2019 - 2024. All rights reserved.