2022年 11月 6日

python 写 csv 文件的两种方法

文章目录

    • 问题描述
    • 方法一: csv
    • 方法二: pandas

问题描述

在深度学习相关任务的训练时,需要在训练的每个 epoch 记录当前 epoch 的准确率(如下图所示),那么在 python 中要怎么将内容写入 csv 文件呢,学习发现可以使用 csv 或者 pandas 实现,在这里做个简单记录。
在这里插入图片描述

这里示例的代码为以追加模式写,每次写入一行

方法一: csv

import csv
log_path = 'log/temp.csv'
file = open(log_path, 'a+', encoding='utf-8', newline='')
csv_writer = csv.writer(file)
csv_writer.writerow([f'Epoch', 'Accuracy'])
csv_writer.writerow(['1', '96.25%'])
file.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

执行完打开文件如下图所示
在这里插入图片描述

方法二: pandas

import os
import pandas as pd

path = 'temp.csv'
# 一次写入一行
df = pd.DataFrame(data=[['1', '98.2789%']])
# 一次写入多行
df = pd.DataFrame(data=[['1', '98.2789%'], ['2', '76.2345%']])
# 解决追加模式写的表头重复问题
if not os.path.exists(path):
    df.to_csv(path, header=['epoch', 'accuracy'], index=False, mode='a')
else:
    df.to_csv(path, header=False, index=False, mode='a')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

执行完打开文件如下图所示
在这里插入图片描述