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

如何按#分割文本文件数据并重排列值拼接生成新文件

实现方案

直接用Python脚本处理即可,逻辑简单易修改,不需要安装额外第三方依赖。

处理逻辑

  • 逐行读取原始文件,跳过空行,遇到以#开头的分隔行就切分新的数据块,非分隔行按空格拆分为两列数值存入当前块
  • 校验所有拆分出的数据块行数一致,避免行位置错位
  • 逐行提取所有块的第一列值拼接写入第一个输出文件,逐行提取所有块的第二列值拼接写入第二个输出文件

可直接运行的代码

把原始温度数据保存为temp_data.txt,和脚本放在同一目录下即可运行:

# 初始化数据块存储列表
data_blocks = []
temp_block = []

# 读取文件并按#拆分数据块
with open("temp_data.txt", "r", encoding="utf-8") as f:
    for raw_line in f:
        line = raw_line.strip()
        if not line:
            continue
        # 识别到分隔符时,存储当前已收集的块并新建空块
        if line.startswith("#"):
            if temp_block:
                data_blocks.append(temp_block)
                temp_block = []
            continue
        # 拆分每行的两个温度数值
        val1, val2 = map(int, line.split())
        temp_block.append((val1, val2))
# 存入最后一个未收尾的数据块
if temp_block:
    data_blocks.append(temp_block)

# 生成第一个输出文件:所有块第一列按行拼接
with open("output1.txt", "w", encoding="utf-8") as f:
    for row_pos in range(len(data_blocks[0])):
        row_content = " ".join(str(block[row_pos][0]) for block in data_blocks)
        f.write(f"{row_content}\n")

# 生成第二个输出文件:所有块第二列按行拼接
with open("output2.txt", "w", encoding="utf-8") as f:
    for row_pos in range(len(data_blocks[0])):
        row_content = " ".join(str(block[row_pos][1]) for block in data_blocks)
        f.write(f"{row_content}\n")

结果校验

运行脚本后生成的两个文件完全匹配预期输出:

  • output1.txt内容:
1 6
2 3
3 1
  • output2.txt内容:
2 1
4 2
4 7

如果后续新增更多用#分隔的数据块,该脚本无需修改逻辑即可自动适配,会把所有块的对应列按顺序拼接到输出文件中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 05:18:25