私は Python 2.7 を使用しており、mechanize ライブラリを使用して Web サイトから Excel ファイルのダウンロードを自動化しようとしています。CharDet を使用して、ファイルの元のエンコーディングである「iso-8859-2」を発見しました。mechanize によって読み取られたデータに基づいてデータを適切に列に分割するために、データをテキスト ファイルに保存する中間ステップがあります。
fileobj = open("data.txt", 'wb')
fileobj.write(response.read())
fileobj.close()
Excel ファイルを作成するために、xlwt モジュールを使用しています。
book = xlwt.Workbook(encoding = "utf-8")
sheet = book.add_sheet('sheet1')
この後、テキスト ファイルを読み、テキストをデコードして utf-8 形式にエンコードしようとします。
for line in fileobj:
line = line.decode("iso-8859-2").encode("utf-8", "ignore")
問題は、Python の csv デフォルト リーダーを使用してファイルを反復処理しようとすると、null バイトがあるというエラーが報告されることです。エンコードされたテキストを .txt ファイルに配置すると、行自体に null バイトがないことが示されるため、問題の原因がわかりません。