Python只解析文本fi的特定部分

2024-03-29 07:00:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含大量数据的文本文件,如下所示:

logstart . . .
(chunk of data)
logend . . .
logstart . . .
(chunk of data)
logend . . .
times
logstart . . .
(chunk of data)
logend . . .
times
logstart . . .
(chunk of data)
logend . . .

我希望我的Python代码打开文件并读取数据块,当且仅当在它的“logend”下有“times”关联时。如果没有时间,我希望它忽略它。当它读取正确的数据块时,我也希望它能读取与之相关的时间。在

这是在我意识到我只需要提取那些特定部分(将整个文本文件保存为“行”)之前所拥有的:

^{pr2}$

我怎样才能改变这一点,使'行'现在只是那些特定的部分的文件?在


Tags: 文件of数据代码data时间读取数据文本文件
2条回答

你可以通过跟踪一个小的状态来做到这一点。在

lines = []
with open(filename, 'rt') as in_file:
    in_log = False
    save = []
    for line in in_file:
        if 'logend' in line:
            in_log = False
        if in_log:
            save.append(line)
        if 'times' in line:
            save.append(line)
            lines.extend(save)
        elif 'logstart' in line:
            in_log = True
            save = []

像这样:

lines = []
with open(filename, 'rt') as in_file:
    chunk = []
    for line in in_file:
        chunk.append(line)
        if(line.find('times')>=0):
            lines.extend(chunk)
        if(line.find('logstart')>=0):
            chunk = []

相关问题 更多 >