如何从python 2.7.5中的字符串变量'\\ host \ printer'中获取'\\\\ host \\ printer'?
我的程序接收字符串参数“\\ host \ printer”,我需要将其转换为“\\\\ host \\ printer”以将其作为JSON文档提交给Web端点。
看起来很简单,但python不会让我。这是发生的事情:
>>> data = '\\host\printer'
>>> print data.replace('\\','\\\\')
\\host\\printer
现在,如果为数据 var分配了一个原始字符串,那么它可以正常工作:
>>> data = r'\\host\printer'
>>> print data.replace('\\','\\\\')
\\\\host\\printer
但是,由于数据是输入参数,因此我无法将其设为原始字符串。我已尝试在SO上找到几个技巧将其转换为原始字符串,但最终结果没有运气,如下所示。
encode()无效:
>>> data = '\\host\printer'
>>> data = data.encode('string-escape')
>>> print data.replace('\\','\\\\')
\\\\host\\\\printer
也不是repr():
>>> data = '\\host\printer'
>>> data = repr(data)
>>> print data.replace('\\','\\\\')
'\\\\host\\\\printer'
也没有re.escape():
>>> import re
>>> data = '\\host\printer'
>>> data = re.escape(data)
>>> print data.replace('\\','\\\\')
\\\\host\\\\printer
答案 0 :(得分:0)
当你这样写:
<audio #audioOption>
<source src='../*.mp3' type="audio/mp3">
</audio>
您最终得到包含文字字符串>>> data = '\\host\printer'
的{{1}},因为在Python data
中是一个转义字符,当您需要单个\host\printer
时,您需要编写\
。您可以使用原始字符串禁用此行为,也可以在使用时转义\
。所以你可以写:
\\
或者你可以写:
\
由于您需要文字字符串>>> data = '\\\\host\\printer'
,因此您需要将>>> data = r'\\host\printer'
的每个实例替换为\\\\host\\printer
。这意味着你可以这样写:
\
这会让你:
\\
文档的String Literals部分详细介绍了上述内容。