我知道在编程中如何转义反斜杠。但是我正在将一个命令行参数传递到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 myscript.py '((1 * 2) + (3 - (4 \ 5)))'
。此外,bash 将\
视为转义序列的开始,因此不会将其作为参数发送,但是 cmd 不会这样做,会正常发送,这会导致在不同的操作系统上出现不同的行为。 - Kolmar