我正在尝试通过参数将文件列表传递给我的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"
它完全忽略了引号。如何使用引号?
答案 0 :(得分:2)
很难看到你正在使用什么或任何代码。
您的shell 可能干扰,您可能需要使用\
转义空格。
实施例:
python script.py -o a -f "file1.txt" "file\ 2.csv"
答案 1 :(得分:0)
没有代码很难,但考虑到你正在使用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是您正在运行的文件名。
答案 2 :(得分:0)
看起来这不是python的错。我正在从bash脚本中调用python脚本,这使得引号混乱成为参数。