2011-10-14 31 views

回答

1

使用csv库,我们读取数据,将其转换为列表列表,将k附加到相关列表中,然后再次写出。

import csv 

data = csv.reader(open("input.csv")) 

l = list(data)  
l[1].append("k") 

our_writer = csv.writer(open("output.csv", "wb")) 

our_writer.writerows(l) 

虽然CSV库是不是你的玩具情况下完全必要的,它往往是很好的使用可很好的办法。

+1

为了一般性,您可能会发现'with'语句有助于正确关闭文件。要更新就地文件,您可以写入临时文件并在成功时重命名它。您应该使用''wb''模式输出文件。如果你在内存中加载所有行,那么'writer.writerows()'允许你一次写入所有的行。 – jfs

+0

@ J.F.Sebastian谢谢!正式指出。 – oadams

1

你不需要csv这样一个简单的例子:

# sed '2s/$/,k/' 
import fileinput 
for lineno, line in enumerate(fileinput.input(inplace=True), start=1): 
    if lineno == 2: 
     line = line.rstrip('\n') + ",k\n" 
    print line, 

例子:

$ python update_2nd_line.py data_to_update.csv 

它更新data_to_update.csv文件就地。

相关问题