当我使用通用行模式(“ rU”)cdv.reader读取csv文件时,它将在cv.writer中生成\ r \ n作为新行。您知道如何忽略csv.writer中的换行吗?我必须在阅读器中使用(“ rU”),因为我的文件包含换行符。
这是我使用的代码
import csv
dict={}
with open('training_data.csv','rU') as f:
reader = csv.reader(f,skipinitialspace=True)
for line in reader:
try:
dict[line[2]].append(line[3])
except:
dict[line[2]]=[line[3]]
with open('training_result.csv','w') as f:
writer = csv.writer(f, delimiter='|',dialect='excel-tab')
for key in dict:
writer.writerow([key,','.join(dict[key])])
输入是这样的
username, some of tweet that
want to be processed
by machine , label
因为那是断行和激活的通用行模式,所以当我捕获数据并想用csv writer进行写入时,它将是相同的
我想要成为的输出是这样的
username, some of tweet that want to be processed by machine , label
我应该删除csv文件中的所有换行符吗?但是它太大了,csv约为150MB,包含70万行。有什么办法吗?
我已经使用过诸如skipinitialspace和方言之类的阅读器属性,但是仍然无法解决问题
我们可以通过用“,”替换新行并为每个新追加添加新行来实现。如果您不需要任何新行,则可以删除\ n
dict[line[2]].append(line[3].replace("\n", ", "));
这是代码
import csv;
dict={};
with open('training_data.csv','rU') as f:
reader = csv.reader(f,skipinitialspace=True);
for line in reader:
try:
dict[line[2]].append("\n"+line[3].replace("\n", ", "));
except:
dict[line[2]]=[line[3].replace("\n", ", ")];
with open('training_result.csv','w') as f:
writer = csv.writer(f, delimiter=',',dialect='excel-tab');
for key in dict:
writer.writerow([key,','.join(dict[key])]);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句