2015-04-25 47 views
0

我有一个带有行的文件,某些行有特定的模式。每个模式之后的行数不同,我想对每个模式之后的行数进行计数。计算每个模式后的行数

<pattern> 
line 1 
line 2 
line 3 
<pattern> 
line 1 
line 2 
etc 

我的代码:

for line in fp: 
    c = 0 
    if line.startswith("<"): 
     header = line.split(" ") 
    else: 
     c = c+1 

我的代码捕获模式以及台词,但我不知道该怎么下一模式之前停止该模式之后开始另算。

+0

为什么不从每个计数中减去一个呢? –

+0

模式总是在行的开始? – John

+0

是模式始终在行 –

回答

0

只需保存c到一个数组并设置c = 0

一个是阵列 l是阵列

array a; 
l = 0; 
for line in fp: 
c = 0 
if line.startswith("<"): 
    header = line.split(" ") 
    a[l] = c 
    c = 0 
    l = l+1 
else: 
    c = c+1 

的长度要读出的值可以从0读出的数组来升:

for i in range(0,l): 
    print "c%d is %d" % (i,a[i])