如何从python 2.7.5中的字符串变量'\\ host \ printer'中获取'\\\\ host \\ printer'?

时间:2017-12-21 17:54:05

标签: python python-2.7

如何从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

1 个答案:

答案 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部分详细介绍了上述内容。