2013-04-30 33 views
1

我有一个会话登录希伯来语(.txt)。我打开文件,使用f=open("./WhatsApp.txt",'r',encoding="cp037")。在文件中,每行文本都包含一个日期和一个文本(例如:14/01/13 12:10:52:דניננדפייטרס:איילתיארעה)。我定义a=f.readlines(),和这里的问题:阅读Python中的希伯来语3.2

>>> a[0] 'Õ]×\x91\x94\x07\x90\x91\x07\x91\x93\x80\x91\x16\x9a\x91\x90\x9a\x91\x04\x9a\x80SØ¡\x8b\x99\x04\x16\x80\x95\x90\x05\x16\x96\x94\x05\x91\x90\x98\x04SØÐ\x9a\x80PmPsPrPxPy\x80PzPmPjPpPrPyPnP¡\x80PmPrPn\x80PlPÆPnPxPyPqPrPnP¡\x80PnPæP°\x80PÆPzPnPpPlPnP¡\n'

我试图解码这个(我想拥有的日期,并让他们从这个字符串是硬的),我做了codecs.decode(a[0],"cp037"),和我

`Traceback (most recent call last): 
    File "<pyshell#37>", line 1, in <module> 
    codecs.decode(a[0],"cp037") 
    File "C:\Python32\lib\encodings\cp037.py", line 15, in decode 
    return codecs.charmap_decode(input,errors,decoding_table) 
TypeError: 'str' does not support the buffer interface` 

这是怎么发生的?我怎样才能以某种方式读取文件,以便我可以将每行文本与文本分开?

+0

@ Xaranke:不,他们不会因为这不是问题。他也清楚地告诉你他已经尝试过了。 – 2013-04-30 06:02:02

回答

1

您已经以文本模式打开了文件,并带有编码,因此它已被解码。您不需要再次解码。

现在文本看起来看起来不像正确解码,说明可能文本不在cp037中。尝试打开它的二进制模式,然后告诉我们该文件的外观。 (事实上​​,我用UTF-8试过,而且工作正常,文件是UTF-8,所以只需将cp037改为'UTF-8'即可)。

+0

非常感谢! – user2334608 2013-04-30 11:36:59

+0

@ user2334608:您无需在此网站上说声谢谢。只需upvote并选择答案。 :-) – 2013-04-30 12:31:46