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