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

求助:将特定格式的TXT文件转换为指定结构的CSV文件

解决TXT转指定格式CSV的方案

针对你提供的TXT格式,我们可以用Python脚本实现批量转换,完全匹配你需要的CSV输出格式:

输入TXT格式

Roll no.   Name     S1     S2    S3     S4     S5

123       Subh      301   302   303     304   305

                    20     21   22      23     23

124      Sagar     306    200   207     205    201

                   30      32    43      81     22

目标CSV格式

Roll no.,   Name,    S1,     S2,    S3,     S4,     S5,


123,       Subh,     [301,   [302,  [303,     [304,   [305,

                     20],      21],    22],     23],     23],

124,      Sagar,     [306,   [200,  [207,     [205,    [201,

                     30],      32],    43],     81],     22],

Python转换脚本

import re

# 读取输入TXT文件
with open('input.txt', 'r', encoding='utf-8') as input_file:
    # 过滤空行并去除每行首尾空白
    non_empty_lines = [line.strip() for line in input_file if line.strip()]

# 处理表头:拆分空格分隔的字段,转成带逗号的格式
header_fields = re.split(r'\s+', non_empty_lines[0])
csv_header = ',   '.join(header_fields) + ','

# 初始化CSV内容列表,包含表头和空行
csv_content = [csv_header, '', '']

# 遍历学生记录:每2行对应一个学生的完整成绩
for idx in range(1, len(non_empty_lines), 2):
    # 拆分第一行(学号、姓名、科目第一组成绩)
    student_info = re.split(r'\s+', non_empty_lines[idx])
    # 拆分第二行(科目第二组成绩)
    second_scores = re.split(r'\s+', non_empty_lines[idx+1])
    
    # 构造学生记录的第一行:学号、姓名+带[的科目成绩
    first_line = f"{student_info[0]},       {student_info[1]},     [{student_info[2]},   [{student_info[3]},  [{student_info[4]},     [{student_info[5]},   [{student_info[6]}],"
    # 构造学生记录的第二行:缩进+带],的科目成绩
    second_line = '                     ' + '],      '.join(second_scores) + '],'
    
    # 添加到CSV内容
    csv_content.append(first_line)
    csv_content.append(second_line)
    csv_content.append('')  # 学生记录间的空行

# 写入目标CSV文件
with open('output.csv', 'w', encoding='utf-8') as output_file:
    output_file.write('\n'.join(csv_content))

脚本说明

  1. 读取与过滤:先读取TXT文件,过滤掉空行,避免干扰处理
  2. 表头处理:用正则拆分多空格分隔的表头字段,转成CSV需要的逗号分隔格式
  3. 学生记录处理:每2行作为一组,分别提取科目两个成绩,拼接成[val1,和val2],的格式,同时保留原有的缩进样式
  4. 写入输出:将处理后的内容写入CSV文件,完全匹配你需要的格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 00:25:31