连接 Python 中文件的记录

Concatenate records from a file in Python

因为我是 Python 编程的新手,所以我需要在这里问一下 :-) 我有一个包含这样记录的文本文件

UCB: Some information
   FCB: More information
   FCB: More information
   FCB: More information
      WCB: Final information
   FCB: More information
   FCB: More information
      WCB: Final information
      WCB: Final information
      WCB: Final information
UCB: Some information
   FCB: More information
   FCB: More information
      WCB: Final information
   FCB: More information

FCB和WCB记录的数量不时不同。我唯一知道的是

  1. UCB 记录后始终至少有一个 FCB 记录。
  2. FCB 记录属于最后读取的 UCB 记录
  3. WCB 记录属于最后读取的 FCB 记录
  4. FCB 记录最多可以有零条 WCB 记录
  5. UCB记录数量未知

我需要读取文件并将 UCB 记录与 FCB 记录连接起来 当且仅当 FCB 后跟一个(或多个)WCB 记录。在那种情况下,对于找到的每个 WCB,输出记录应该是 UCB + FCB + WCB。

在 Python 中有关于如何执行此操作的任何建议吗?

问候 霍贝

您可以将最新的 UCB 和 FCB parents 存储在变量中并附加到每个 WCB 的列表中。

def myFunc(filepath):
    rv = []

    latest_ucb = None
    latest_fcb = None

    with open(filepath, 'r') as file:
        for line in file:
            line = line.lstrip() # remove leading whitespaces
            current_info = line[5:]

            if line[:3] == 'UCB':
                latest_ucb = current_info
            elif line[:3] == 'FCB':
                latest_fcb = current_info
            elif line[:3] == 'WCB':
                rv.append(latest_ucb + latest_fcb + current_info)

    return rv