我想将转义的字符转换回原始格式:
>>> myString="\\10.10.10.10\view\a"
>>> myString
'\\10.10.10.10\x0biew\x07'
>>>desiredString=fun(myString)
>>>print desiredString
'\\10.10.10.10\view\a'
我研究了很多,找不到解决方案 我使用的是Python2.6。
答案 0 :(得分:1)
理想情况下,您应该使用python内置字符串函数或正确解析输入数据,以避免这些后转换。事实上,根本不鼓励这些自定义解决方案,但是你可以去:
def fun(input_str):
cache = {
'\'':"\\'",
'\"':'\\"',
'\a':'\\a',
'\b':'\\b',
'\f':'\\f',
'\n':'\\n',
'\r':'\\r',
'\t':'\\t',
'\v':'\\v'
}
return "".join([cache.get(m,m) for m in list(input_str)])
tests = [
"\\10.10.10.10\view\a",
"\'",
'\"',
'\a',
'\b',
'\f',
'\n',
'\r',
'\t',
'\v'
]
for t in tests:
print repr(t)," => ",fun(t)
答案 1 :(得分:0)
myString=r"\\10.10.10.10\view\a"
myString
'\\\\10.10.10.10\\view\\a'
print myString
\\10.10.10.10\view\a
R' ...'是字节串
答案 2 :(得分:0)
打印时\v
和\a
被解释为特殊字符。别担心,只需添加另一个反斜杠即可避免这种情况。
>>> myString="\\10.10.10.10\\view\\a"
>>> print(myString)
\10.10.10.10\view\a
编辑: 或者使用repr:
>>> myString=r"\\10.10.10.10\view\a"
>>> print myString
\\10.10.10.10\view\a