1

ヘブライ語 (.txt) の会話ログがあります。を使用してファイルを開きました f=open("./WhatsApp.txt",'r',encoding="cp037")。このファイルでは、テキストの各行が日付とテキストで構成されていました (例: 14/01/13 12:10:52: דני נדדפיטרס: איילת יא רעה)。を定義a=f.readlines()しましたが、問題は次のとおりです。

>>> 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`

なぜこうなった?各行を日付とテキストに分けることができる方法でファイルを読み取るにはどうすればよいですか?

4

1 に答える 1

1

エンコードを使用してテキスト モードでファイルを開いたので、既にデコードされています。再度デコードする必要はありません。

このテキストは正しくデコードされたようには見えません。これは、そもそもテキストが cp037 にない可能性があることを示しています。バイナリ モードで開いてみて、ファイルがどのように見えるか教えてください。

(実際、私は UTF-8 で試してみましたが、うまくいきました。ファイルは UTF-8 なので、cp037 を 'UTF-8' に変更するだけでうまくいきます)。

于 2013-04-30T05:56:51.843 に答える