我试图传递带有空格的命令行参数,但是sys.argv[1].strip()
只给我论点的第一个词
import sys, os
docname = sys.argv[1].strip()
e.g. $ python myscript.py argument with whitespace
如果我尝试调试 - docname 给出的输出为argument
代替argument with whitespace
我尝试将空白替换为.replace(" ","%20")
方法但这没有帮助
这与Python无关,与shell有关。 shell 有一个功能叫做分词 http://mywiki.wooledge.org/WordSplitting这使得命令调用中的每个单词都是一个单独的单词或arg。要将结果作为包含空格的单个单词传递给 Python,必须转义空格或使用引号。
./myscript.py 'argument with whitespace'
./myscript.py argument\ with\ whitespace
换句话说,当你的参数到达 Python 时,分词已经完成,未转义的空白已被消除并且sys.argv
(基本上)是一个单词列表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)