作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我知道在编程中转义反斜杠。但是,我将命令行参数传递给 Python 程序进行解析。空格无关紧要,但是通过命令行,空格很重要。所以我试图将除第一个元素之外的所有 argv[] 参数连接成一个字符串,然后进行解析。然而,在 for 循环中永远不会遇到单个 '\' 的标记。
命令行参数(注意“\”周围的空格):
((1 * 2) + (3 - (4 \ 5)))
程序:
import sys
string = ""
for token in sys.argv[1:len(sys.argv)]:
print(token)
if "\\" in r"%r" % token:
print("Token with \\ found")
string += token
print(string)
print("done")
最佳答案
这不是 Python 问题。 shell 将解释您在命令行中写入的文本并(对于典型的 Unix shell)执行反斜杠替换。所以当 Python 检查命令行时,反斜杠已经被替换掉了。
如果您的 shell 是 Bash 或其他一些与 Bourne 兼容的 Unix shell,解决方法是加倍反斜杠或将其放在单引号中。 Windows CMD 本身就不同且令人困惑。 csh 加倍如此。
关于python - 在 Python 中将反斜杠作为命令行参数处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28155755/
我是一名优秀的程序员,十分优秀!