Python:Unicode字符串和转义序列

时间:2014-10-24 05:51:27

标签: python regex string unicode

假设我有一个包含带双反斜线的行的文本文件。例如,

...
3\\/4
...

当我在Python中打开此文件并尝试处理这些行时,我遇到以下问题:

f = open("example.txt")
for line in f:
    print(line)

#prints "3\/4" instead of "3\\/4"!!

所以我想当unicode转换为Python字符串时,双反斜杠会转义为单反斜杠...如何防止这种情况?

我知道当我创建一个字符串时,我可以做这样的事情:

x = r"3\\/4"

但我不确定如何为字符串 变量 (在这种情况下为“行”)执行此操作?

由于

3 个答案:

答案 0 :(得分:2)

您还可以通过添加r来使用Python的原始字符串表示法。

>>> uni = ur"a\\/b"
>>> print(uni)
a\\/b

答案 1 :(得分:1)

如果文件包含该内容,则会打印该内容。没有问题。

c:\>type x.txt
3\\/4
c:\>py
Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:57:17) [MSC v.1600 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> with open('x.txt') as f:
...  for line in f:
...   print(line)
...
3\\/4

答案 2 :(得分:0)

使用print(repr(line))代替print(line)。希望这会有所帮助:

>>> a='\\anc'
>>> print(a)
\anc
>>> print(repr(a))
'\\anc'