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

从文本文件提取传感器值并按分组列写入Excel的方案求助

解决方案

思路说明

要实现分组按列写入Excel,核心是先从文本中提取对应分组的values数据,再分别写入不同列。以下用openpyxl库(支持现代xlsx格式,功能更完善)实现,步骤清晰直接:

代码实现

from openpyxl import Workbook

# 初始化三个列表,分别存储三组传感器的values
sen_a_values = []
sen_b_values = []
sen_c_values = []

# 读取文本文件并解析数据
with open('Testcase.txt', 'r') as f:
    # 跳过表头(如果文本第一行是字段名:Sensor编号、Sensor Name、Units、values)
    next(f)
    for line in f:
        # 按实际文本分隔符分割行数据,这里假设是逗号分隔;若为空格/tab,可改为split()或split('\t')
        parts = line.strip().split(',')
        if len(parts) < 4:
            continue  # 跳过格式错误的行
        sensor_id = parts[0].strip()
        value = parts[3].strip()
        
        # 判断传感器分组并将value存入对应列表
        if sensor_id.startswith('SenA'):
            sen_a_values.append(value)
        elif sensor_id.startswith('SenB'):
            sen_b_values.append(value)
        elif sensor_id.startswith('SenC'):
            sen_c_values.append(value)

# 创建Excel工作簿和工作表
wb = Workbook()
ws = wb.active
ws.title = 'Sensor Values'

# 写入列标题
ws.cell(row=1, column=1, value='SenA组values')
ws.cell(row=1, column=2, value='SenB组values')
ws.cell(row=1, column=3, value='SenC组values')

# 将三组数据分别写入对应列
max_rows = max(len(sen_a_values), len(sen_b_values), len(sen_c_values))
for row in range(2, max_rows + 2):
    # 写入SenA组数据
    if row-2 < len(sen_a_values):
        ws.cell(row=row, column=1, value=sen_a_values[row-2])
    # 写入SenB组数据
    if row-2 < len(sen_b_values):
        ws.cell(row=row, column=2, value=sen_b_values[row-2])
    # 写入SenC组数据
    if row-2 < len(sen_c_values):
        ws.cell(row=row, column=3, value=sen_c_values[row-2])

# 保存Excel文件
wb.save('Sensor_Values.xlsx')

注意事项

  • 若文本文件不是逗号分隔,需修改split(','):空格分隔用split(),制表符分隔用split('\t')。
  • 如果文本没有表头,删除next(f)这一行即可。
  • 代码自动处理三组传感器数量不一致的情况,空缺单元格会留空。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 19:22:38