Python文件搜索行,匹配后返回指定行数

2024-09-30 06:33:08 发布

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

我有一个文本文件,其中的行表示一些数据集。文件本身相当长,但包含以下格式的某些部分:

Series_Name                INFO Number of teams : n1
|    Team                                      |     #     |    wins     |
|    TeamName1                                 |     x     |    y        |
.
.
.
|    TeamNamen1                                |     numn  |    numn     |
Some Irrelevant lines
Series_Name2               INFO Number of teams : n1
|    Team                                      |     #     |    wins     |
|    TeamName1                                 |     num1  |    num2     |
.

其中每个部分都有一个以序列名开头的标题。每个系列的名字都是不同的。带标题的那一行还包括该系列中的团队数量n1。标题行后面是一组表示数据表的行。对于每个系列,表中有n1+1行,其中每行显示一个单独的团队名称和相关的统计信息。 我一直在尝试实现一个函数,允许用户搜索一个团队名称,然后在表中打印出与该团队相关联的行。但是,某些球队的名字会出现在多个系列中。 为了解决这个问题,我目前正在尝试编写代码,以便用户可以先搜索带有series name的标题行,然后打印出以下n1+1行,这些行表示与序列相关的数据。 到目前为止,我得出的结论是:

^{pr2}$

我的代码的第一部分是工作的;它匹配用户搜索的标题行,解析该行,然后打印出该系列中有多少个团队。因为标题行基本上告诉我表中有多少行,所以我想我可以使用这些信息构建一个循环,继续打印每一行,直到集合计数器达到n1。但我试过运行它,我意识到我目前设置它的方式是不正确的。 所以我的问题是:当给定匹配后的期望行数时,如何返回匹配行后面的行数?我是编程新手,如果这个问题看起来很傻,我很抱歉。我一直在努力工作,没有运气,并希望任何帮助。在


Tags: of数据用户info标题number序列团队
1条回答
网友
1楼 · 发布于 2024-09-30 06:33:08

请尝试类似这样的代码(略为伪代码)。在

with open('myfile') as fh:
  for line in fh:
    if line == match: # Some actual code here in your conditional:
      for i in range(5):
        additionalData = next(fh)

通过调用next(fh),您可以检索文件中的下一行,而不会弄乱for line in fh循环。在

相关问题 更多 >

    热门问题