1

私はいくつかのことを試しましたが、試行ごとに異なるエラーが発生しました。'r'最初にandオプションを使用して読み書きしていました'w'が、これにより、Excel で表示したときに実際の行の間に空白行が含まれる csv が生成されます。

'rb'だから、とで読み書きしなければならないことがわかりました'wb'。しかし、今はエラーが発生しています: _csv.Error iterator should return strings, not bytes (did you open the file in text mode?).

これが私のコードです:

def readLines():
    r = csv.reader(open('test.csv', "rb"), dialect="excel")
    return [l for l in r] #causes the error

def writeFile(lines):
    resultFile = open('output.csv', 'wb')
    wr = csv.writer(resultFile, dialect='excel')
    wr.writerows(lines)

lines文字列である必要があるオブジェクトの変更を行います。私はこれを正しい方法で行っていますか?

4

3 に答える 3

2

問題は、改行属性を設定していなかったことです。

これが現在動作している私の更新されたコードです:

def readLines():
    r = csv.reader(open('test.csv', "rt", newline=''), dialect="excel")
    return [l for l in r]

def writeFile(lines):
    resultFile = open('output.csv', 'wt', newline='')
    wr = csv.writer(resultFile, dialect='excel')
    wr.writerows(lines)
于 2013-02-08T23:22:58.807 に答える
0

ファイルをテキスト モードで開いてみます。

r = csv.reader(open('test.csv', "rt"), dialect="excel")

resultFile = open('output.csv', 'wt')
于 2013-02-08T23:13:33.757 に答える