这应该使您知道该怎么做:
>>> v = open('C:/test/test.csv')>>> r = csv.reader(v)>>> row0 = r.next()>>> row0.append('berry')>>> print row0['Name', 'Code', 'berry']>>> for item in r:... item.append(item[0])... print item... ['blackberry', '1', 'blackberry']['wineberry', '2', 'wineberry']['rasberry', '1', 'rasberry']['blueberry', '1', 'blueberry']['mulberry', '2', 'mulberry']>>>
编辑,注意在py3k中必须使用
next(r)
感谢您接受答案。在这里,您有一个好处(您的工作脚本):
import csvwith open('C:/test/test.csv','r') as csvinput: with open('C:/test/output.csv', 'w') as csvoutput: writer = csv.writer(csvoutput, lineterminator='n') reader = csv.reader(csvinput) all = [] row = next(reader) row.append('Berry') all.append(row) for row in reader: row.append(row[0]) all.append(row) writer.writerows(all)
请注意
- 中的
lineterminator
参数csv.writer
。默认情况下,它设置为'rn'
,这就是为什么间距为两倍的原因。 - 使用列表附加所有的行并用
writerows
。如果文件很大,这可能不是一个好主意(RAM),但是对于普通文件,我认为它会更快,因为I / O较少。 - 如本文评论中所述,请注意
with
,您可以在同一行中执行以下 *** 作,而不是嵌套两个语句:
使用open(’C:/test/test.csv’,’r’)作为csvinput,open(’C:/test/output.csv’,’w’)作为csvoutput:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)