Python 在文件中的行中搜索特定单词后面的数字,然后迭代该数字
我有一个包含多行的文件,其中一行读作:loop_iter 10{apples=0;oranges=0}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
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'