簡體   English   中英

Python-有時會將CSV文件的附加行添加到前一行的末尾

[英]Python - Sometimes an appended row to a CSV file is added to the end of the previous row

打開一個退出的文件並向其中寫入字典有時會將字典(被寫為一行)附加到前一行的末尾。 我將如何設置此代碼以始終防止這種情況? 似乎只有在先前的代碼“運行”崩潰並且我已經重新啟動代碼並且它開始從先前的運行寫入文件時才發生(我想要的-只是不添加到前一行的末尾)。

        #Creating output dictwriter for results
        with open(csv, 'a', 0) as outputFile:
            fieldnames = csvCols
            successWriter = csv.DictWriter(outputFile, fieldnames=fieldnames)
            successWriter.writerow(out_dict)
        outputFile.close()

以“ ab”模式打開文件會有所不同嗎?

您通常會在文件行中添加“ \\ n”,以便將其寫入下一行。

以下內容在Python 2.x中應該可以正常工作:

# Creating output dictwriter for results

with open(csv, 'ab') as outputFile:
    successWriter = csv.DictWriter(outputFile, fieldnames=csvCols)
    successWriter.writerow(out_dict)

即使您的腳本有問題, with語句也會自動關閉文件。 如果不使用ab模式,則每次調用writerow都會導致多余的空行。

如果您使用的是Python 3.x,則需要滿足以下條件:

# Creating output dictwriter for results

with open(csv, 'a', newline='') as outputFile:
    successWriter = csv.DictWriter(outputFile, fieldnames=csvCols)
    successWriter.writerow(out_dict)

暫無
暫無

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

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