Python - 双反斜杠未传递给命令

时间:2017-11-14 06:13:04

标签: python python-3.x backslash

我需要将以下用户登录传递给bash子进程命令,但是当它通过它时返回为" domain \ test"而不是一个反斜杠。但是当我打印它时,它将作为一个单独返回。

usr = "domain\\"
u = "test"
usrLogin = ''.join([usr,u])

我尝试过以下分配usr的变体:

usr = "domain\\"    
usr = 'domain\\'
usr = r'domain\'
usr = r"domain\\"
usr = str(r('domain\\'))

该字符串将传递给以下命令:     subprocess.call([" chown"," -R",usrLogin,usrLocation])

我需要的输出是:

domain\test

但是目前,当它被传递给子进程调用时,它显示为:

domain\\usr

然而,当我打印时,它只显示1个反斜杠:

print('usrLogin)
domain\test

编辑:对不起,我已经添加了更多有希望帮助的细节。

2 个答案:

答案 0 :(得分:1)

usr =“domain \\”

\是转义字符,所以你要使用四个斜杠来获得两个。

答案 1 :(得分:0)

就像Van Peer已经说过反斜杠是第二个反斜杠的转义字符。因此\\会产生\

如果您希望使用双反斜杠,则需要编写\\\\