我有一个有很多行的文件,前四行以一些字母(一个单词)开头,其余的以数字开头。我想迭代以数字开头的行(三位数字,例如'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
答案 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