[英]Python arguments passed with quotes
我正在嘗試通過參數將文件列表傳遞給我的 python 腳本:
python script.py -o aaa -s bbb "filename.txt" "filename2.txt" "file name3.txt"
不幸的是 ArgumentParser 忽略了引號,而不是給出 3 個文件的列表,它給了我 4 個元素的列表,如下所示:
1) "filename.txt"
2) "filename2.txt"
3) "file
4) name3.txt"
它完全忽略引號。 如何使它與引號一起使用?
在沒有看到您正在使用的內容或任何代碼的情況下很難。 您的外殼可能會干擾,您可能需要使用\\
轉義空格。
示例: python script.py -oa -f "file1.txt" "file\\ 2.csv"
沒有代碼很難,但考慮到您正在使用sys.argv[]
您可以輕松地使用引號傳遞文件參數,例如當您需要文件或 argv 時使用空格: python script.py "myFile.txt" "otherFile.jpeg"
嘗試這個簡單的代碼來理解:
import sys
for n, p in enumerate(sys.argv):
print("Parameter: %d = %s") % (n, p))`
您可以看到第一個 argv 是您正在運行的文件名。
看起來這不是python的錯。 我正在從 bash 腳本內部調用 python 腳本,這使引號作為參數變得混亂。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.