当我打印“打印(a)”组时,会显示整个组。当我将其保存到文本文件“open(”sirs1.txt“,”w“)时。写(a)”只将最后一行保存到文件中。
import re
def main():
f = open('sirs.txt')
for lines in f:
match = re.search('(AA|BB|CC|DD)......', lines)
if match:
a = match.group()
print(a)
open("sirs1.txt", "w").write(a)
如何将整个组保存到文本文件中。
答案 0 :(得分:2)
nosklo是正确的,主要问题是每次写入时都要覆盖整个文件。 mehmattski也是正确的,你还需要在每次写入时明确地添加\ n,以使输出文件可读。
试试这个:
enter code here
import re
def main():
f = open('sirs.txt')
outputfile = open('sirs1.txt','w')
for lines in f:
match = re.search('(AA|BB|CC|DD)......', lines)
if match:
a = match.group()
print(a)
outputfile.write(a+"\n")
f.close()
outputfile.close()
答案 1 :(得分:1)
open
命令会创建一个新文件,因此您每次都要创建一个新文件。
尝试在for-loop
之外创建文件import re
def main():
with open('sirs.txt') as f:
with open("sirs1.txt", "w") as fw:
for lines in f:
match = re.search('(AA|BB|CC|DD)......', lines)
if match:
a = match.group()
print(a)
fw.write(a)
答案 2 :(得分:0)
您需要在每个字符串后面添加换行符,以便在不同的行上打印:
import re
def main():
f = open('sirs.txt')
outputfile = open('sirs1.txt','w')
for lines in f:
match = re.search('(AA|BB|CC|DD)......', lines)
if match:
a = match.group()
print(a)
outputfile.write(a+'/n')
f.close()
outputfile.close()