我目前正在编写一个用于处理文本文件的小型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())
答案 0 :(得分:0)
您尚未声明您在此处使用的\ initialized line
:
re.finditer(line,lines2)
所以,改变:
linecache.getline('out.txt', n)
到
line = linecache.getline('out.txt', n)