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

使用Python生成特定结构可更新CSV文件 用于光谱仪测试数据记录

光谱仪测试CSV文件生成实现方案

核心实现逻辑

  • 首次创建CSV文件时写入表头:第一列首单元格留空,后续列接固定的测试指标字段
  • 后续每次测试仅追加新行:行首为当前测试的日期时间,后续列接本次测试的对应数据
  • 自动判断文件状态,避免重复写入表头

完整可运行代码

import csv
import os
import time

# 可自定义配置
csv_save_path = "spectrum_test_result.csv"
# 第一行固定常量向量(对应测试指标名称)
test_index = ['波长', '强度']  # 可根据实际测试指标扩展

def append_test_result(test_data):
    # 生成当前日期时间字符串
    current_time = time.strftime("%m/%d/%Y, %H:%M:%S", time.localtime())
    # 判断文件是否已存在
    is_file_exist = os.path.exists(csv_save_path)

    with open(csv_save_path, 'a', newline='', encoding='utf-8') as f:
        csv_writer = csv.writer(f)
        # 首次创建文件时写入表头
        if not is_file_exist:
            # 表头第一格为空,后接固定测试指标
            header_row = [''] + test_index
            csv_writer.writerow(header_row)
        # 拼接本次测试行:第一格为时间,后接测试数据
        current_row = [current_time] + test_data
        csv_writer.writerow(current_row)

# 调用示例:单次测试完成后调用即可
if __name__ == "__main__":
    # 模拟本次测试得到的数据,顺序需和test_index的指标一一对应
    current_test_data = [546, 2870]
    append_test_result(current_test_data)

关键说明

  • 写入时间时需将时间字符串放在列表的第一个元素,避免直接传入字符串被拆分为单个字符占用多列
  • 新增newline=''参数可解决Windows系统下CSV打开出现多余空行的问题
  • 测试数据列表的元素顺序需和test_index定义的指标顺序保持一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:27:03