Python 在文件中的行中搜索特定单词后面的数字,然后迭代该数字

Python 在文件中的行中搜索特定单词后面的数字,然后迭代该数字,python,iteration,Python,Iteration,我有一个包含多行的文件,其中一行读作:loop_iter 10{apples=0;oranges=0} import sys import re input_file = open(r'C:\infile') pat_file_read = input_file.read() for line in input_file_read: match = re.search("loop_iter\s*(\d+)" , input_file_read) print match.gro

我有一个包含多行的文件,其中一行读作:loop_iter 10{apples=0;oranges=0}

import sys
import re

input_file = open(r'C:\infile')
pat_file_read = input_file.read()

for line in input_file_read:
    match = re.search("loop_iter\s*(\d+)" , input_file_read)
    print match.group(1)
现在我可以打印文件中的行数,如果我这样做的话

for line in input_file_read:
    if line.startswith("loop_iter"):
    match = re.search("loop_iter\s*(\d+)" , input_file_read)
    print match.group(1)  

不起作用

堆栈溢出中的语法着色可能已经给了您一个提示。。。但看起来您的引号不匹配:

if line.startswith('loop_iter"):
试一试


我想我把match.group(1)转换成整数后,它就可以工作了

import sys
import re

input_file = open(r'C:\infile')
pat_file_read = input_file.read()

for line in input_file_read:
    match = re.search("loop_iter\s*(\d+)" , input_file_read)
    i = int(match.group(1))

for x in range i:
    print 'something' 

我确实试过了。我犯了语法错误,但现在编辑了问题。循环在许多空格后开始。。我也应该考虑白色空间吗?你在两个不同的循环中“读取”文件两次吗?如果是这样,那么您需要通过
seek(0)
将文件指针重置回起始位置。不,我不会读取它两次。到目前为止,这几乎就是我的全部代码。有没有一种方法可以在一行中迭代这个数字?
import sys
import re

input_file = open(r'C:\infile')
pat_file_read = input_file.read()

for line in input_file_read:
    match = re.search("loop_iter\s*(\d+)" , input_file_read)
    i = int(match.group(1))

for x in range i:
    print 'something'