Python argv采用通配符路径
输入路径'doc1/*。png'作为第一个参数。Python argv采用通配符路径
但它被转换为doc1/image1.png。
如何给出确切的参数?
img_list = [] print sys.argv[1] x = sys.argv[1] img_list = [img for img in glob.glob(x)]
大多数Linux壳(bash
,sh
,fish
,...),星号是由壳处理。 *
转换为文件列表的事实已在shell级别处完成。
如果你写:
python file.py doc/*.png
的**壳将转化成doc/*.png
"doc/1.png" "doc/2.png"
(所以.png
列表文件发现在doc
目录
你应该使用引号传递。星号,如:
python file.py 'doc/*.png'
标准Windows外壳没有而是为文件名做通配符。
这不是真的在窗口,你有完全相反的问题,你必须使用'glob.glob' –
@ Jean-FrançoisFabre:谢谢。我不使用你看到的Windows :)我更喜欢[90年代的外壳](https://fishshell.com/):)。 –
这是在shell级别完成的。 –
尝试在Linux上引用:'“doc1/*。png”' –
如果arg在命令行上使用单引号包装,那么shell不应扩展它。你在用什么外壳? –