2011-10-14 66 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文件就地。

相關問題