[作为字符串变量]>打印特殊字符

时间:2017-03-28 09:56:39

标签: python

我面对一个奇怪的情况..在将变量设置为字符串之后,我尝试打印该变量并获取字符串替换为特殊字符的字符串。

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 .."

取代

感谢您的帮助

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