我面对一个奇怪的情况..在将变量设置为字符串之后,我尝试打印该变量并获取字符串替换为特殊字符的字符串。
file_version_cmd="wmic datafile where name='C:\\\Program Files (x86)\\\Citrix\\\ICA Client\\\4.1\\\wfcrun32.exe'"
print(file_version_cmd)
印刷品的输出是: wmic datafile其中name =' C:\ Program Files(x86)\ Citrix \ ICA Client \♦.1 \ wfcrun32.exe'
" .. .. 4.1"被" ..♦。1 .."
取代感谢您的帮助
答案 0 :(得分:1)
您的字符串中有'\\\4.'
,使用'\4'
为\ooo octal value escape sequence
创建了不可打印的字节。数字被解释为octal numbers
。
默认的\xhh
语法用于表示十六进制值。
您可以使用原始字符串文字重写字符串:
file_version_cmd = r"wmic datafile where name='C:\Program Files (x86)\Citrix\ICA Client\4.1\wfcrun32.exe'"
或
file_version_cmd = "wmic datafile where name='C:\\Program Files (x86)\\Citrix\\ICA Client\\4.1\\wfcrun32.exe'"
以上两个代码段都将导致:
wmic datafile where name='C:\Program Files (x86)\Citrix\ICA Client\4.1\wfcrun32.exe'
此外,您可以使用正斜杠以及大多数Windows API接受文件名中的两种类型的斜杠分隔符(如果文件路径将由python本身使用,但可能无法按预期工作):
file_version_cmd = "wmic datafile where name='C:/Program Files (x86)/Citrix/ICA Client/4.1/wfcrun32.exe'"
如果您想了解有关python词法分析器的更多信息,可以参考this documentation。