1. ホーム
  2. python

[解決済み] CSVリーダーで「Line contains NULL byte」と表示される (Python)

2023-02-05 08:06:15

質問

CSV ファイル (input.csv) を見て、テキスト ファイル (output.txt) にリストされた、特定の要素 (corrected.csv) で始まる行だけを書き換えるプログラムを書こうとしています。

今、私のプログラムはこんな感じです。

import csv

lines = []
with open('output.txt','r') as f:
    for line in f.readlines():
        lines.append(line[:-1])

with open('corrected.csv','w') as correct:
    writer = csv.writer(correct, dialect = 'excel')
    with open('input.csv', 'r') as mycsv:
        reader = csv.reader(mycsv)
        for row in reader:
            if row[0] not in lines:
                writer.writerow(row)

残念ながら、このエラーが出続けていて、何のことだかさっぱりわかりません。

Traceback (most recent call last):
  File "C:\Python32\Sample Program\csvParser.py", line 12, in <module>
    for row in reader:
_csv.Error: line contains NULL byte

すべての人へのクレジット こちら に感謝します。

どのように解決するのですか?

同じような問題を、もっと簡単に解決したことがあります。

import codecs
csvReader = csv.reader(codecs.open('file.csv', 'rU', 'utf-16'))

キーポイントは、コーデックモジュールを使ってUTF-16エンコーディングのファイルを開くことでした。 のドキュメントを参照してください。 .