我使用 doc1/*.png
作为第一个参数运行脚本,但它被转换为 doc1/image1.png
。
如何让 Python 看到确切的参数?
img_list = []
print sys.argv[1]
x = sys.argv[1]
img_list = [img for img in glob.glob(x)]
最佳答案
在大多数 Linux shell(bash
、sh
、fish
...)上,星号由 shell 处理。 *
转换为文件列表的事实已在 shell 级别完成。
如果你写:
python file.py doc/*.png
shell 本身会将 doc/*.png
转换为 "doc/1.png""doc/2.png"
(因此它在 doc
目录中找到的 .png
文件列表。
您应该使用引号来传递星号,例如:
python file.py 'doc/*.png'
标准 Windows shell 不对文件名使用通配符。
关于Python argv 采用通配符路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45329930/