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

Python温度记录仪程序新建CSV文件添加列标题异常问题求助

问题原因

你当前的重复表头问题是因为写表头的逻辑被放在了start()函数的无限while循环内,且每次循环都会将变量x重置为1,if x >= 1的判断每次循环都会触发,因此每写入一行温度数据就会多追加一次表头。
同时你原有代码存在多次重复打开文件未关闭的问题,容易引发IO缓存写入失败的隐患。

修正方案

你只需要把表头写入逻辑移到循环外,在首次创建CSV文件时完成写入即可,同时可以通过判断文件是否为空来避免程序重启时重复写入表头。修正后的代码如下:

import datetime
import time
import os
# 假设THERMO是你已初始化的传感器对象

# 生成带时间戳的文件名
datetime1 = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
extension = ".csv"
file_name = f"{datetime1}{extension}"
header = "Date,Time,Minutes,InletTemp,ControlTemp,BedTemp,OutletTemp"

# 首次写入表头:判断文件是否存在且为空
if not os.path.exists(file_name) or os.path.getsize(file_name) == 0:
    with open(file_name, 'w', encoding='utf-8') as f:
        f.write(header + '\n')

# start按钮函数
def start():
    # 记录程序启动时间用于计算运行分钟数
    start_time = datetime.datetime.now()
    while True:
        # 采集传感器数据
        t1 = THERMO.getTEMP(0,1)
        t2 = THERMO.getTEMP(0,2)
        t3 = THERMO.getTEMP(0,3)
        t4 = THERMO.getTEMP(0,4)

        # 温控板LED切换
        THERMO.toggleLED(0)
        
        # 处理时间字段,匹配表头格式
        current_time = datetime.datetime.now()
        date_str = current_time.strftime("%Y-%m-%d")
        time_str = current_time.strftime("%H:%M:%S")
        run_minutes = round((current_time - start_time).total_seconds() / 60, 2)

        # 拼接数据行
        data = f"{date_str},{time_str},{run_minutes},{t1},{t2},{t3},{t4}"

        # 追加写入文件
        with open(file_name, 'a', encoding='utf-8') as f:
            f.write(data + '\n')
        
        # 控制台输出
        print(str(current_time))
        print('Temperature on Channel 1:', t1)
        print('Temperature on Channel 2:', t2)
        print('Temperature on Channel 3:', t3)
        print('Temperature on Channel 4:', t4)

        time.sleep(1)

# 启动函数
if __name__ == "__main__":
    start()

优化说明

  • 用with上下文管理器自动处理文件打开关闭,避免资源泄漏
  • 拆分了日期、时间字段,匹配你预设的表头结构,新增了运行分钟数的计算逻辑
  • 新增了文件存在性和空文件判断,即使程序中断重启也不会重复写入表头
  • 文件名使用格式化字符串生成,避免空格等特殊字符导致的读取异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:27:01