2010-10-20 148 views
4

我需要能够定期将数据添加到CSV文件的末尾。理想情况下,我想在不将整个文件读入内存的情况下执行此操作。如何将数据添加到CSV文件的末尾(Python)

有没有一种方法可以将数据附加到文件末尾?发生在我身上的一个解决方案就是简单地从Python中提取管道命令,但这看起来太过丑陋。有没有更好的方法在CSV文件的末尾追加一行或几行?

+5

'开放(FNAME, 'A')'? – SilentGhost 2010-10-20 11:42:40

+0

有时(为了写入Excel兼容的CSV文件)它是'open(fname,'ab')'。 – 2010-10-20 11:58:56

+0

啊,是的,它总是你错过的明显的。我不能相信答案是多么明显。我可以要求关闭这个问题,或者你们中的任何一个人都可以回答,以便我可以接受你的答案。 – skyeagle 2010-10-20 12:11:27

回答

1

实际上,有两种方法。首先,您只需open(filename, 'ab')即可打开文件appending in binary mode。第二是使用seek

import os 
my_file = open("data.csv", "ab") 
my_file.seek(0, os.SEEK_END) 

(我扔的第二个在那里主要是让我不只是剥去·洛和SilentGhost这不是特别有用。)

+0

呃,除非我弄错了,你不能附加到以读取模式打开的文件? - 我在这里错过了什么? – skyeagle 2010-10-20 13:59:05

+0

根据该教程的链接:“'r +'打开文件以读取和写入”。根据[文档](http://docs.python.org/library/functions.html#open),它用于“更新”。恩... – detly 2010-10-20 14:10:30

+0

感谢您的澄清。可能坚持'ab'模式只是为了确保数据被追加。 – skyeagle 2010-10-20 15:11:28

相关问题