给定一个包含字符串的变量,有一种快速方法可以将其转换为另一个原始字符串变量吗?
以下代码应说明我的目标:
line1 = "hurr..\n..durr"
line2 = r"hurr..\n..durr"
print(line1 == line2) # outputs False
print(("%r"%line1)[1:-1] == line2) # outputs True
我到目前为止找到的最接近的是%r
格式化标志,它似乎返回一个原始字符串,尽管在单引号内。有没有更简单的方法来做这种事情?
答案 0 :(得分:62)
Python 3:
"hurr..\n..durr".encode('unicode-escape').decode()
Python 2:
"hurr..\n..durr".encode('string-escape')
答案 1 :(得分:1)
另一种方式:
>>> s = "hurr..\n..durr"
>>> print repr(s).strip("'")
hurr..\n..durr
答案 2 :(得分:1)
上面展示了如何编码。
'hurr..\n..durr'.encode('string-escape')
这种方式会解码。
r'hurr..\n..durr'.decode('string-escape')
实施例
In [12]: print 'hurr..\n..durr'.encode('string-escape')
hurr..\n..durr
In [13]: print r'hurr..\n..durr'.decode('string-escape')
hurr..
..durr
这允许人们在两个方向上“转换/转换原始字符串”。一个实际的例子是json包含一个原始字符串,我想很好地打印它。
{
"Description": "Some lengthy description.\nParagraph 2.\nParagraph 3.",
...
}
我会做这样的事情。
print json.dumps(json_dict, indent=4).decode('string-escape')