python - 每次运行脚本时如何在同一个 .csv 文件中写一个新行?
问题描述
我有以下脚本可以写入.csv文件 - 它可以工作,但我正在多个文件上运行脚本..
我正在使用:from csv import DictWriter
目前它只是一遍又一遍地写入和更新同一行。所以我的/metrics.csv
只有一行......我怎么能让它每次都更新到新行?
/find_pending_records.py
def get_excel_data(self):
"""Places excel data into pandas dataframe"""
...........
with open("./logs/metrics.csv", "w", newline="") as f:
csv_writer = DictWriter(f, ['date', 'total', 'processed', 'skipped', 'total_zips', 'success_rate'])
csv_writer.writeheader()
currentDT = datetime.datetime.now()
success_rate = num_valid_records / total_records * 100
csv_writer.writerow(dict(date=currentDT,
total=total_records,
processed=num_valid_records,
skipped=num_invalid_records,
success_rate=num_valid_records / total_records * 100))
return self.clean_data_frame(excel_data)
解决方案
甚至无需深入了解您的代码,问题就是以下行
with open("./logs/metrics.csv", "w", newline="") as f:
这会以write
模式打开文件,因此您需要将其更改为w
以模式a
打开文件append
。
推荐阅读
- java - Spring boot 2 使用 AWS API Gateway 激活 spring 配置文件
- android - Android 上的 Web 推送通知
- swiftui - 从 datepicker 获取和设置日期,但仍然获得旧的默认值
- reactjs - 命令 C 不会阻止本地服务器在 VS 代码上运行
- c# - 如何在 Syncfusion Blazor 中以全宽和自动高度显示整个世界地图?
- text2vec - text2vec 包中的 glove_event$fit_transform 错误
- python - 用 Python 合并 300 个变量
- java - 原生 Android (Java) 中的 Agora.io
- ssh - 对新网站运行 rsync 会导致连接被拒绝
- php - Instagram 的 file_get_contents 返回空响应