Ошибка при попытке удалить строки с помощью регулярных выражений и записи в новый файл - PullRequest
0 голосов
/ 30 января 2020

У меня есть текстовый файл, где каждая строка начинается с «0», затем следует табуляция, а затем, в идеале, некоторый текст - однако, некоторые строки просто имеют «0», за которым следуют пробелы, и мне нужно их удалить.

РЕДАКТИРОВАТЬ: я добавил 'w' во второй путь к файлу, как рекомендуется ниже, но теперь я получаю следующее сообщение об ошибке:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-6-ed7474583899> in <module>
      3     with open('test_02.txt', 'w', ) as append_file:
      4         for line in file:
----> 5             if not pattern(line):
      6                 append_file.write(" "+r)
      7         append_file.write("\n")

TypeError: 're.Pattern' object is not callable

при запуске этого кода

import re

pattern = re.compile("^0\s+$")
with open('test.txt', 'w') as file:
    with open('test_02.txt') as append_file:
        for line in file:
            if not pattern(line):
                append_file.write(" "+r)
        append_file.write("\n")

но когда я запускаю его, я получаю следующее сообщение об ошибке

FileNotFoundError                         Traceback (most recent call last)
<ipython-input-26-41d28ce0cbdf> in <module>
      3 pattern = re.compile("^0\s+$")
      4 with open('test.txt') as file:
----> 5     with open('test_02.txt') as append_file:
      6         for line in file:
      7             if not pattern(line):

FileNotFoundError: [Errno 2] No such file or directory: 'test_02.txt'

Я использовал ту же команду 'с открытием', прежде чем удалить стоп-слова из текста и сохранить их в новом файл, так что я не уверен, почему он генерирует эту ошибку сейчас, и мне не повезло устранить неполадки.

1 Ответ

0 голосов
/ 30 января 2020
  1. откройте файл как доступный для записи, если вы планируете записать в этот файл: with open( 'name', 'w') as fout et c.
  2. вы не можете вызвать скомпилированный re шаблон pattern(line), вы должны использовать pattern.match(line) или что-то в этом роде.
  3. при создании шаблона re обычно рекомендуется использовать строку r'...' в качестве шаблона.
  4. append_file.write(" "+r) - ошибка, поскольку r нигде не определено.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...