连接 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记录的数量不时不同。我唯一知道的是
- UCB 记录后始终至少有一个 FCB 记录。
- FCB 记录属于最后读取的 UCB 记录
- WCB 记录属于最后读取的 FCB 记录
- FCB 记录最多可以有零条 WCB 记录
- 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
因为我是 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记录的数量不时不同。我唯一知道的是
- UCB 记录后始终至少有一个 FCB 记录。
- FCB 记录属于最后读取的 UCB 记录
- WCB 记录属于最后读取的 FCB 记录
- FCB 记录最多可以有零条 WCB 记录
- 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