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 中(bash
、sh
、fish
、...),星号由 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.*')
我 运行 我的脚本以 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
目录。
您应该使用引号传递星号,例如:
python file.py 'doc/*.png'
标准 Windows shell 不 对文件名使用通配符。
正如@Jean-François Fabre 所说,可以使用 glob 模块在 windows 上使用通配符。
import glob
paths = glob.glob('C:\path\with\wildcard.*')