簡體   English   中英

Python CSV (DictWriter) 覆蓋數據?

[英]Python CSV (DictWriter) overwriting data?

在過去的 3 個月里,我運行了一個 Python 腳本。 簡單的抓取工具,它抓取當天收集的日期、點和當前時間,並使用DictWriter將其寫入 CSV 中。

錯誤的原因

昨天,我不得不打開 CSV(使用 Apple 默認的 Numbers 應用程序)並刪除最近輸入的日期、點、時間。 從那時起,它一直將新條目附加到前一行,創建額外的列。 我沒有編輯任何代碼。

讓我嘗試創建問題的視覺效果:

CSV 格式前的bug

第一行是標題

| Date   | Points | Time Completed |
| Mar 29 | 15141  | 08:55 AM       |
| Mar 30 | 15411  | 08:56 PM       |
| Mar 31 | 15681  | 11:08 AM       |
| Apr 01 | 15911  | 10:40 AM       |

CSV 編輯后的格式

| Date   | Points | Time Completed  |       |          |
| Mar 29 | 15141  | 08:55 AM        |       |          |
| Mar 30 | 15411  | 08:56 PM        |       |          |
| Mar 31 | 15681  | 11:08 AM        |       |          |
| Apr 01 | 15911  | 10:40 AMApril02 | 16276 | 07:57 PM |

代碼

我沒有更改之前/之后的任何代碼。

def write_csv(points):
    headers = ['Date', 'Points', 'Time completed']
    today = date.today().strftime("%B %d")
    now = datetime.now().strftime("%I:%M %p")
    with open('/Users/Shared/PointsTracker.csv', 'a') as PointsTracker:
        writer = csv.DictWriter(PointsTracker, fieldnames=headers)
        
        writer.writerow({
            headers[0]: today,
            headers[1]: points,
            headers[2]: now
        })

編輯文件時刪除了尾隨換行符。 編輯文件並將其放回原處。

暫無
暫無

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

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