我试图传递带有空格的命令行参数,但是 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 无关。外壳有一个名为 wordsplitting 的特性 使命令调用中的每个单词成为一个单独的单词或 arg。要将结果作为包含空格的单个单词传递给 Python,您必须转义空格或使用引号。
./myscript.py 'argument with whitespace'
./myscript.py argument\ with\ whitespace
换句话说,当您的参数到达 Python 时,分词已经完成,未转义的空格已被消除,sys.argv
(基本上)是一个单词列表。
关于python - 在 Python 中传递带空格的命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41125435/