来自re.finditer的python变量m.start()不会被覆盖

时间:2016-07-01 14:19:35

标签: python

我目前正在编写一个用于处理文本文件的小型python程序。 (我是新手程序员)

首先,我使用re.finditer在lines1中查找特定的字符串。然后我将其写入文件并关闭它。 接下来我想抓住第一行并在另一个文本文件中搜索。第一次使用re.finditer它运行得很好。

问题是:m.start()始终返回第一个m.start的最后一个值。它不会被覆盖,因为它是第一次使用re.finditer。

你能帮我理解为什么吗?

我的代码:

for m in re.finditer(finder1,lines1):
    end_of_line = lines1.find('\n',m.start())
    #print(m.start())
    found_tag = lines1[m.start()+lenfinder1:end_of_line]
    writefile.write(found_tag+'\n')
    lenfinder2 = len(found_tag)


input_file3 = open ('out.txt')
writefile.close()
num_of_lines3 = file_len('out.txt')

n=1
while (n < num_of_lines3):
    line = linecache.getline('out.txt', n)
    n = n+1
    re.finditer(line,lines2)
    #print(m.start())

1 个答案:

答案 0 :(得分:0)

您尚未声明您在此处使用的\ initialized line

re.finditer(line,lines2)

所以,改变:

linecache.getline('out.txt', n)

line = linecache.getline('out.txt', n)