CSV以注释行开头写入文件

时间:2016-01-15 15:28:08

标签: python python-2.7

我需要创建一个包含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行使用简单的写操作)?

1 个答案:

答案 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"]])