python - CSV 写入以注释行开头的文件

标签 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 行使用简单的写操作)?

最佳答案

您不必在每次迭代时都创建一个新的 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"]])

关于python - CSV 写入以注释行开头的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34814443/

相关文章:

python - 在 Python 中生成非重复随机数

python - 在 keras.preprocessing.text 中使用 Tokenizer 时内存不足

python - 使用python从html元标记中确定字符集

python - 找到一个xml标签并将标签名称替换为python

python - 按下按钮后 Tkinter.Label 不显示

python - 属性错误 : ‘module’ object has no attribute 'scores'

python - 如何清除这两个小部件以及它们被其他小部件清除

mysql - 带断线的 django + mysql 文本字段格式

Python Turtle 比较颜色

Python:如何在不重复元组内容的情况下生成元组列表的所有组合