带引号的python参数中带空格的字符串
在Python3参数中传递带有空格的参数时,我遇到了一个奇怪的问题 例如:带引号的python参数中带空格的字符串,python,python-3.x,argparse,Python,Python 3.x,Argparse,在Python3参数中传递带有空格的参数时,我遇到了一个奇怪的问题 例如: camera.timelapse.upload --file="dcim/20200821.mp4" --title="20200821" --description="Timelapse for 20200821" --noauth_local_webserver camera.timelapse.upload --file="dcim/20200
camera.timelapse.upload --file="dcim/20200821.mp4" --title="20200821" --description="Timelapse for 20200821" --noauth_local_webserver
camera.timelapse.upload --file="dcim/20200821.mp4" --title="20200821 test" --description="Timelapse for 20200821" --noauth_local_webserver
结果:
camera.timelapse.upload.py:错误:无法识别的参数:用于20200821
另一个例子:
camera.timelapse.upload --file="dcim/20200821.mp4" --title="20200821" --description="Timelapse for 20200821" --noauth_local_webserver
camera.timelapse.upload --file="dcim/20200821.mp4" --title="20200821 test" --description="Timelapse for 20200821" --noauth_local_webserver
结果:
camera.timelapse.upload.py:错误:无法识别的参数:测试20200821
在本例中,您可以看到,它将每个分隔开的单词视为一个单独的参数,即使它们被引用
我尝试了使用和不使用=,结果是一样的。我尝试用单引号代替双引号,结果还是一样。多亏了@puffin,问题出在别名上,而不是参数上。别名必须引用其参数变量。比如说
function camera.timelapse { sudo python3 ~/camera.timelapse/camera.timelapse.py "$@"; }
我们需要查看处理参数解析的代码才能帮助解决这个问题。用空格引用字符串应该有效。由argparser处理
从oauth2client.tools导入运行\u flow,argparser
查看引发错误的代码以及引发错误时字符串的值仍然很有用argparser。添加参数(“--title”,default=“Timelapse”,help=“Set the video title”)
您测试过终端传递程序的内容吗?打印(sys.args)。它可以是您选择的终端,而不是python。例如,您可能需要放置转义字符,如“dcim\/20200821.mp4”或“time\thing”。旅游终端如何处理报价?