私はネット全体を見てきましたが、これを機能させることができないようです。
Python2.6を使用してcsvファイルinput.csvを読み取り、PythonでDictReaderとDictWriterを使用して1行ずつoutput.csvに出力したいと考えています。
input.csvのエンコーディングについては何も知りません。output.csvを開くと、すべてがEYESに問題ありませんが、2行でdiffコマンドを実行すると、すべての行が異なります。ファイルを割り当てとして送信するため、ファイルのバイトシーケンスを同じにする必要があります。
これが私が持っているコードの骨組みです(あちこちから借りました):
from csv import DictReader,DictWriter
class DictWriterEx(DictWriter):
def writeheader(self):
header = dict(zip(self.fieldnames, self.fieldnames))
self.writerow(header)
with open('input.csv','rb',) as f:
dr = DictReader(f)
with open('output.csv','wb') as o:
dw = DictWriterEx(o,fieldnames=dr.fieldnames)
dw.writeheader()
for row in dr:
dw.writerow(dict((k, v) for k, v in row.iteritems()))
私も変更してみました
dw.writerow(dict((k, v) for k, v in row.iteritems()))
に並ぶ
dw.writerow(dict((k, v.encode('utf-8')) for k, v in row.iteritems()))
それは私に例外を与えます:
UnicodeDecodeError:'ascii'コーデックは位置7のバイト0xc3をデコードできません:序数が範囲内にありません(128)
私は夢中になっているので、この問題を解決するのを手伝ってください。
解決策:lineterminator ="/n"を使用してDictWriterを 初期化します