簡體   English   中英

用引號傳遞的 Python 參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM