【发布时间】:2012-12-03 09:54:22
【问题描述】:
我有一个巨大的数据文件,其中包含在定义的行数后重复的特定字符串。
计算前两个“排名”出现之间的跳跃。例如文件如下所示:
1 5 6 8 Rank line-start
2 4 8 5
7 5 8 6
5 4 6 4
1 5 7 4 Rank line-end
4 8 6 4
2 4 8 5
3 6 8 9
5 4 6 4 Rank
您会注意到字符串 Rank 每隔 3 行重复一次。因此,对于上面的示例,块中的行数为 4。我的问题是如何使用 python readline() 获取行数。
我目前关注这个:
data = open(filename).readlines()
count = 0
for j in range(len(data)):
if(data[j].find('Rank') != -1):
if count == 0: line1 = j
count = count +1
if(count == 2):
no_of_lines = j - line1
break
欢迎提出任何改进或建议。
【问题讨论】:
-
您要计算文件中的总行数,还是只计算其中包含单词 rank 的行数?
-
@InbarRose 想计算包含字符串 Rank 的行之间的行数。
-
如果每个块的行数相同,则只计算第一个块。
-
谢谢@fanlix 是的,这正是我所需要的。您可以注意到我的代码中的 break 语句,它在找到第一个块中的行数后停止循环
-
我不能用不到 5 行代码完成这项工作。等待一些专业......
标签: python string readline readfile