从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')