我想添加一個新行到我的舊csv文件。基本上,每次運行Python腳本時都會更新它。追加新行到舊的CSV文件python
現在我將舊的csv行值存儲在列表中,然後刪除csv文件並使用新的列表值重新創建它。
想知道有沒有更好的方法來做到這一點。
我想添加一個新行到我的舊csv文件。基本上,每次運行Python腳本時都會更新它。追加新行到舊的CSV文件python
現在我將舊的csv行值存儲在列表中,然後刪除csv文件並使用新的列表值重新創建它。
想知道有沒有更好的方法來做到這一點。
fd = open('document.csv','a')
fd.write(myCsvRow)
fd.close()
打開文件與'a'
參數可以附加到文件,而不是簡單地覆蓋現有內容的末尾。試試看。
你用'a'而不是'w'模式打開文件嗎?
參見Reading and Writing Files在python文檔
7.2。讀寫文件
open()返回一個文件對象,最常用於兩個參數:open(filename,mode)。
>>> f = open('workfile', 'w') >>> print f <open file 'workfile', mode 'w' at 80a0960>
第一個參數是一個包含文件名的字符串。第二個參數是 另一個字符串,其中包含幾個字符,用於描述文件將被使用的方式。模式可以是'r',當文件只有 讀時,'w'只寫入(現存的同名文件將被刪除, ),'a'打開文件進行追加;任何寫入 的數據都會自動添加到文件末尾。 'r +'打開 文件的閱讀和寫作。模式參數是可選的; 'r'將被假設爲 ,如果省略。
在Windows上,該模式附加的'b'以二進制模式打開文件,所以 也有'rb','wb'和'r + b'等模式。 Windows上的Python 區分了文本和二進制文件;在讀取或寫入數據 時,文本文件末尾的 字符會稍微自動更改。這種對文件數據 的後臺修改對於ASCII文本文件來說很好,但它會破壞JPEG或EXE文件中的 這樣的二進制數據。當讀取 並編寫這些文件時,請非常小心地使用二進制模式。在Unix上,將模式追加'b'並不會傷害到該模式,因此您可以在所有二進制 文件中獨立使用它。
可能是你可以讓你的答案更詳細,然後它會看起來像一個真正的答案:-) – user702846 2011-07-29 12:10:24
@用戶,我添加了一個鏈接 - 這是否幫助你? – 2011-07-29 20:08:05
我試過 fp = open(csv_filepathwithname,'wa') writer = csv。Writer(fp) somelist = [3,56,3,6,56] writer.writerow((somelist)) 但只有最後一行會被附加到文件中。 – laspal 2010-03-02 14:49:31