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

如何用Python按事件关联规则合并两个文本文件

合并事件与关联数据文件的实现方案

可以用Python脚本完成两个文件的对应合并,核心思路是先把第二个文件中的每个数据块提取出来,再和第一个文件的事件行一一对应输出。

步骤说明

  1. 提取第二个文件的数据块:以sta phase time wt为分隔符,将每个事件对应的关联数据存为独立的列表元素。
  2. 读取第一个文件的事件行:过滤出所有以#开头的事件记录。
  3. 一一对应输出:将每个事件行与其对应的数据块内容依次写入结果文件。

Python代码实现

# 读取并解析第二个文件的关联数据块
with open('station_data.txt', 'r', encoding='utf-8') as data_file:
    # 读取所有非空行并去除首尾空白
    all_lines = [line.strip() for line in data_file if line.strip()]

event_data_blocks = []
current_block = []
separator = 'sta phase time wt'

for line in all_lines:
    if line == separator:
        # 遇到分隔符时,将当前已收集的块存入列表(如果不为空)
        if current_block:
            event_data_blocks.append(current_block)
            current_block = []
    else:
        # 非分隔符行加入当前块
        current_block.append(line)

# 处理最后一个未被存入的块(如果存在)
if current_block:
    event_data_blocks.append(current_block)

# 读取第一个文件的事件行
with open('events.txt', 'r', encoding='utf-8') as event_file:
    event_lines = [line.strip() for line in event_file if line.strip() and line.startswith('#')]

# 合并并写入结果文件
with open('merged_result.txt', 'w', encoding='utf-8') as output_file:
    # 用zip将事件行和数据块一一配对
    for event, data_block in zip(event_lines, event_data_blocks):
        # 写入事件行
        output_file.write(f"{event}\n")
        # 写入对应的数据块内容
        for data_line in data_block:
            output_file.write(f"{data_line}\n")
        # 可选:每个事件后添加空行分隔,增强可读性
        output_file.write("\n")

注意事项

  • 确保第一个文件的事件数量和第二个文件的数据块数量完全对应,否则zip会以较短的一方为准,忽略多余的内容。
  • 如果需要处理数量不匹配的情况,可以添加判断逻辑(比如对多余的事件或数据块单独处理)。
  • 替换代码中的文件名station_data.txt、events.txt、merged_result.txt为你实际使用的文件路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 12:10:32