迭代以数字开头的行

时间:2012-12-03 16:13:09

标签: python

我有一个有很多行的文件,前四行以一些字母(一个单词)开头,其余的以数字开头。我想迭代以数字开头的行(三位数字,例如'123',后跟包含字母和数字的不同变量)并忽略前4行。这就是我所做的,但它在输出中给了我一个空白列表。

number = []  
for line in infile.readline():  
    line = line.rstrip()  
    if line.startswith('[0-9]'):
        number.append(line.split()[0])  
print number

为什么输出中的'number'列表为空?

这就是infile的样子:

Value = 152  
Numb = 0.005  
Pos = 75  
Samp = 12.5  
150    K    0.345  
234    T    0.764  
565    X    0.345 

2 个答案:

答案 0 :(得分:5)

因为startswith采用字符串,而不是正则表达式。你想要re.match

编辑:或import string; line.startswith(tuple(string.digits))(感谢@GarethRees)

答案 1 :(得分:1)

不是直接回答,但跳过行的最简单方法是:

from itertools import islice
with open('file') as fin:
    for line in islice(fin, 4, None):
        pass # do something