1

该脚本读取一个文件,其中包含我复制粘贴的文本。它对文本数据进行一些操作并返回结果。然而,当 python 读取文件时,它会将其保存在一个带有单引号和其他一些编码的变量中,例如:、、\xe2\x80\x99等等。仅当我从网页复制粘贴文本时才会发生这种情况。如果我在文件中输入相同的文本并随后读取该文件,则单引号和其他字符不会使用特殊字符进行转义。\xe2\x80\x9\xe2\x80\x99

该文件的名称是“text.txt”。我使用默认将所有内容保存为 utf-8 的编辑器打开它。我打开一个新闻网页(例如:http ://www.euronews.com/2013/05/31/why-it-s-not-so-great-in-britain/ )并将文本复制到'text.txt' 文件。之后:file=open('text.txt', 'r').read()file在 python2 控制台中点击。

In [62]: file=open('text.txt', 'r').read()

In [63]: file
Out[63]: 'Britain\xe2\x80\x99s generous system... David Cameron:\xe2\x80\x9c What we can do is make sure...they\xe2\x80\x99re drawn by the attractiveness...\xe2\x80\x9d'

1)你能解释一下这种行为吗?

2)如何让python在没有转义字符的情况下读取复制的文本?

4

2 回答 2

3
In [1]: text = 'perchè'

In [2]: text
Out[2]: 'perch\xc3\xa8'

In [3]: print text
perchè

当你评估某些东西时,ipython 会调用它的repr方法。repr字符串方法显示转义而不是实际字符。这是您真正想要的,因为它避免了 stdout 编码的问题,还允许您查看字符串中实际包含哪些字符(想想 unicode 多种获取相同字符的方式)。

要查看真实字符,您应该将字符串写入标准输出(假设标准输出可以处理字符串的编码等)

于 2013-06-13T08:03:30.220 回答
0

似乎由于某种原因euronews.net网页文本以这种方式显示。当我从任何其他站点复制带有引号的任何文本时,我只有简单don\'t的转义。

于 2013-06-13T08:10:47.523 回答