You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PyCharm中每日自动保存字典数据至表格并保留历史记录?

解决CSV存储每日字典数据不被覆盖的问题

默认用open()函数写CSV时,若使用'w'模式会直接覆盖原有文件,改用追加模式即可保留历史数据,同时要处理好表头的写入逻辑(只在第一次运行时写表头)。以下是两种实用实现方式:

方法1:使用标准库csv模块

import csv
import os
from datetime import date

# 每日更新后的字典(固定10个键,建议添加日期字段区分历史)
daily_data = {
    "key1": 246,
    "key2": "xyz",
    "key3": 78.9,
    # 补充剩余7个固定键
    "record_date": str(date.today())
}

csv_path = "daily_data.csv"
# 提取字典的键作为CSV表头
field_names = list(daily_data.keys())

# 检查文件是否已存在
file_exists = os.path.isfile(csv_path)

# 以追加模式打开文件
with open(csv_path, mode='a', newline='', encoding='utf-8') as csv_file:
    writer = csv.DictWriter(csv_file, fieldnames=field_names)
    # 仅当文件不存在时写入表头
    if not file_exists:
        writer.writeheader()
    # 追加当日数据行
    writer.writerow(daily_data)

方法2:使用pandas库(适合熟悉数据处理的场景)

import pandas as pd
from datetime import date

daily_data = {
    "key1": 246,
    "key2": "xyz",
    "key3": 78.9,
    # 补充剩余7个固定键
    "record_date": str(date.today())
}

csv_path = "daily_data.csv"
# 将字典转为DataFrame
df = pd.DataFrame([daily_data])

# 判断文件是否存在,决定是否写入表头
file_exists = os.path.isfile(csv_path)
# 以追加模式写入,index=False避免写入行索引
df.to_csv(csv_path, mode='a', index=False, header=not file_exists, encoding='utf-8')

关键注意点

  • 务必保证每次的字典键顺序和表头一致,避免数据错位
  • 强制添加日期字段(如示例中的record_date),否则无法区分各条历史数据对应的日期
  • 可根据需求添加异常捕获逻辑,防止文件写入失败导致程序中断

内容的提问来源于stack exchange,提问作者Xavier Benitez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 21:10:08