打開一個正在退出的文件並向其中寫入字典時,有時會將字典(正在寫入一行)追加到上一行的末尾。我如何設置這個代碼來防止這種情況發生?它似乎只發生在先前的代碼'run'崩潰並且我重新啓動了代碼,並且它開始寫入前一次運行的文件(我想要的 - 只是沒有添加到前一行的末尾)。Python - 有時將一個CSV文件的附加行添加到前一行的末尾
#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'模式會有所作爲嗎?
是從「撞車」的文件在最後一行的末尾缺少一個換行符?它是否像打開文件追加之前檢查文件的最後一行換行符一樣簡單? – mhopeng
請注意,您不需要'outputFile.close()'行,因爲'with'語句會自動爲您關閉文件。 –
是的,他們是 - 我不知道該怎麼做。而且我也認爲這不是必要的,因爲我確信可以通過某種方法確保總是寫一個換行符。因爲,而這正是我感到困惑的地方,當腳本崩潰時,文件始終是關閉的 - 也就是說,崩潰不會發生在上面的代碼中,而是出現在代碼之前或之後的代碼中 - 但是文件是在這些情況下不開放或關閉並已寫入。 – traggatmot