我正在嘗試將新資料附加到 CSV 檔案。
例如:我有 3 列,即Quantity、Cost、Item。
說,我有以下資料:
- 數量 = 20
- 成本 = 150
- 專案 = 鍵盤
每次我使用代碼時,它都應該為資料創建一個新行 - 輸出如下所示:
Quantity,Cost,Item
20,150,Keyboard
20,150,Keyboard
相反,以下代碼僅在我每次運行時產生以下輸出:
Quantity,Cost,Item
20,150,Keyboard
代碼:
QUANTITY = 20
COST = 150
ITEM = "Keyboard"
with open('orders.csv', 'w', newline='') as order_csv:
order_csv_write = csv.writer(order_csv)
order_csv_write.writerow(
["QUANTITY", "COST", "ITEM"])
with open('orders.csv', 'a', newline='') as order_csv:
order_csv_append = writer(order_csv)
order_csv_append.writerow([QUANTITY, COST, ITEM])
order_csv.close()
我該如何以正確的方式去做?
uj5u.com熱心網友回復:
每次使用寫入w模式時,它都會覆寫檔案,洗掉行程中的舊內容。
首先檢查檔案是否存在,然后僅在不存在時才寫入標題行可能更有意義。這是一種方法,它顯示了您的問題所需的行為:
import csv
from pathlib import Path
QUANTITY = 20
COST = 150
ITEM = "Keyboard"
FILE_PATH = Path('orders.csv')
if not FILE_PATH.exists():
with open(FILE_PATH, 'w', newline='') as order_csv:
order_csv_write = csv.writer(order_csv)
order_csv_write.writerow(
["QUANTITY", "COST", "ITEM"])
with open(FILE_PATH, 'a', newline='') as order_csv:
order_csv_append = csv.writer(order_csv)
order_csv_append.writerow([QUANTITY, COST, ITEM])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/433950.html
