从Excel CSV读取和写入另一个问题

我已经尝试了一些东西,并尝试了不同的错误。 首先,我正在用'r''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对象,要求他们是string。 我正在以正确的方式去做这件事吗?

问题是我没有设置新的行属性。

这是我现在正在更新的代码:

 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) 

尝试以文本模式打开文件:

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