使用csv模块的DictReader和DictWriter类将相当容易。下面是一个示例,它读取旧文件,并以单次传递的方式写入新文件。
一个DictReader实例将文件的每一个逻辑行作为字典返回,字典的键是字段名。可以显式指定字段名,也可以从文件的第一行读取字段名,如示例所示。
在创建DictWriter实例时,必须指定所需的字段名,字段名的顺序定义了它们在输出文件的每一行上的显示顺序。在这种情况下,新的字段名只需添加到输入文件中名称列表的开头—无论它们是什么。import csv
with open('testdata.txt', 'rb') as inf, open('testdata2.txt', 'wb') as outf:
csvreader = csv.DictReader(inf)
fieldnames = ['Node'] + csvreader.fieldnames # add column name to beginning
csvwriter = csv.DictWriter(outf, fieldnames)
csvwriter.writeheader()
for node, row in enumerate(csvreader, 1):
csvwriter.writerow(dict(row, Node='node %s' % node))
如果这是输入文件的内容:ID,Test Description,file-name,module,view,path1,path2
id 1,test 1 desc,test1file.txt,test1module,N,test1path1,test1path2