【发布时间】:2021-02-18 19:47:23
【问题描述】:
我想将一个 csv 文件的行写入另一个 csv 文件。我还想更改每一行的内容,如果该行为空,则它保持为空,如果不是,则省略字符串开头和结尾的任何空格。原始 csv 文件有 1 列和 65422771 行。
我已经编写了以下内容以将原始 csv 文件的行写入新文件:
import csv
csvfile = open('data.csv', 'r')
with open('data 2.csv', "w+") as csv_file1:
writer = csv.writer(csv_file1)
count = 0
for row in csvfile:
row = row.replace('"', '')
count+= 1
print(count)
if row.strip() == '':
writer.writerow('\n')
else:
writer.writerow(row)
但是,当创建新的 csv 文件时,显示它有 130845543 行(=计数)!新的 csv 文件的大小也是原始文件大小的 2 倍。如何创建具有完全相同行数但对它们进行了上述更改的新 csv 文件?
【问题讨论】:
-
一个明显的错误是您的意思是
writer.writerow(''),而不是writer.writerow('\n')。删除所有双引号看起来也很奇怪。你应该使用正确的csv.reader,就像你使用csv.writer一样。