2017-07-26 51 views
0

输入路径'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)]

+0

这是在shell级别完成的。 –

+0

尝试在Linux上引用:'“doc1/*。png”' –

+0

如果arg在命令行上使用单引号包装,那么shell不应扩展它。你在用什么外壳? –

回答

1

大多数Linux壳(bashshfish,...),星号是由壳处理。 *转换为文件列表的事实已在shell级别处完成。

如果你写:

python file.py doc/*.png 

的**壳将转化成doc/*.png"doc/1.png" "doc/2.png"(所以.png列表文件发现在doc目录

你应该使用引号传递。星号,如:

python file.py 'doc/*.png' 

标准Windows外壳没有而是为文件名做通配符。

+0

这不是真的在窗口,你有完全相反的问题,你必须使用'glob.glob' –

+0

@ Jean-FrançoisFabre:谢谢。我不使用你看到的Windows :)我更喜欢[90年代的外壳](https://fishshell.com/):)。 –