我试图传递带有空格的命令行参数,但是 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")
方法替换空白,但这没有帮助
原文由 Darshan Deshmukh 发布,翻译遵循 CC BY-SA 4.0 许可协议
这与 Python 无关,与 shell 无关。 shell 有一个叫做 wordsplitting 的特性,它使命令调用中的每个词成为一个单独的词,或 arg。要将结果作为包含空格的单个单词传递给 Python,您必须转义空格或使用引号。
换句话说,当您的参数到达 Python 时,分词已经完成,未转义的空格已被消除,并且
sys.argv
(基本上)是一个单词列表。