我需要创建一个包含csv数据(或tsv,而不是)的文件,前面是几条注释(通过“#”)行(第三方程序的处理指令)。
我试过的是在附加模式下打开带有注释的模板文件并将csvrows写入其中:
...
with open('template.txt', 'a+') as csvfile:
for record in records:
csvWriter = csv.writer(csvfile, delimiter='\t',quotechar='"', quoting=csv.QUOTE_MINIMAL)
csvWriter.writerow([record['Id'], record['Email']])
....
这不起作用(无论我用哪个标志打开文件)。它不会覆盖注释行,但会跳过与注释一样多的csv行。
所以这显然不是怎么做的。那么在Python(2.7)中创建一个混合非csv数据和csv数据的文件的正确方法是什么(我希望我的csv字段正确引用等等,所以我不想对我的csv行使用简单的写操作)?
答案 0 :(得分:2)
您不必每次迭代都创建一个新的csv.writer
,它只是file.write
的包装器。
import csv
with open("template.txt", "wt") as fp:
fp.write("# first commented line\n")
fp.write("# second commented line\n")
writer = csv.writer(fp)
for record in records:
writer.writerow([record["Id"], record["Email"]])
fp.write("# a commented line among the records\n")
for record in more_records:
writer.writerow([record["Id"], record["Email"]])