簡體   English   中英

用Python寫入csv文件

[英]Writing to csv file in Python

我有的代碼

i = 0
while i < len(newsymbolslist):
    time = 102030
    data = 895.233
    array = [time], [data]
    with open('StockPrice.csv', 'wb') as file:
        file_writer = csv.writer(file)
        file_writer.writerow(array)
        file.close()
    i += 1

我是Python的新手,所以我不確定100%為什么前面的代碼只將數據輸入到第一行。 我的猜測是,因為我在每次迭代時打開文件,所以它不知道它不應該被覆蓋。 我知道如何從理論上解決它(如果那是問題)。 我只是在語法上遇到麻煩。

我的猜測:使用迭代(var i)計算文件應向下寫入多少行。

with open('StockPrice.csv', 'wb') as f:
    file_writer = csv.writer(f)
    for s in newsymbolslist:
        time = 102030
        data = 895.233
        array = [time], [data]
        file_writer.writerow(array)

您的第一個猜測是正確的:每次以'wb'模式打開文件時,該文件都會被有效刪除(如果存在)並創建一個新的空文件。 因此,只有在上一次迭代中通過while-loop寫入的內容會影響文件的內容。

解決方法是打開一次文件(在循環開始之前)。

請注意,使用with語句打開文件可確保Python離開with-block時將關閉文件。 因此,您無需自己調用f.close()

文檔中

模式最常用的值是'r'表示讀取, 'w'表示寫入( 如果文件已經存在則將其截斷 ),以及'a'表示附加(...)

如果要寫入現有文件的末尾,請在附加模式下使用'a'打開它。 (盡管在這種情況下,是的,重組循環是更好的答案。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM