Экспорт всей группы регулярных выражений в текстовый файл - PullRequest
2 голосов
/ 25 апреля 2011

Когда я печатаю группу " 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)

Как сохранить всю группу в текстовом файле.

Ответы [ 3 ]

2 голосов
/ 26 апреля 2011

Носкло правильно, основная проблема в том, что вы перезаписываете весь файл каждый раз, когда пишете в него. Мехматцки также прав в том, что вам также нужно явно добавлять \ 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 голос
/ 25 апреля 2011

команда 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)
0 голосов
/ 26 апреля 2011

Вам нужно добавить символ новой строки после каждой строки, чтобы они печатались в отдельных строках:

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()
...