我需要创建一个包含 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/