首页 > 解决方案 > 每次运行脚本时如何在同一个 .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)

标签: pythoncsv

解决方案


甚至无需深入了解您的代码,问题就是以下行

with open("./logs/metrics.csv", "w", newline="") as f:

这会以write模式打开文件,因此您需要将其更改为w以模式a打开文件append


推荐阅读