将整个正则表达式组导出到文本文件

| 当我打印组\“ print(a)\”时,将显示整个组。当我将其保存到文本文件\“ open(\” sirs1.txt \“,\” w \“)。write(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)
如何将整个组保存到文本文件。     
已邀请:
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()
    
open
命令会创建一个新文件,因此您每次都在创建一个新文件。 尝试在for循环外创建文件
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)
    
您需要在每个字符串后添加换行符,以使其在单独的行上打印:
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()
    

要回复问题请先登录注册