2017-07-26 55 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/):)。 –