Python argv 采用通配符路径

Python argv taking wild card path

我 运行 我的脚本以 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 中(bashshfish、...),星号由 shell。 * 转换为文件列表 的事实已经在 shell 级别 .

完成

如果你写:

python file.py doc/*.png

shell本身会将doc/*.png翻译成"doc/1.png" "doc/2.png"(所以它在doc 目录。

您应该使用引号传递星号,例如:

python file.py 'doc/*.png'

标准 Windows shell 对文件名使用通配符。

正如@Jean-François Fabre 所说,可以使用 glob 模块在 windows 上使用通配符。

import glob
paths = glob.glob('C:\path\with\wildcard.*')