Использование fileinput для записи в файл делает проблему - PullRequest
1 голос
/ 14 января 2020
for line in fileinput.FileInput("file.txt", inplace=1):
  if "success" in line:
    print(line)

Когда я использую fileinput, файл 'file.txt' не освобождается. Я мог видеть, что проблема 'file.txt' все еще используется. Когда я выполняю вышеуказанную функцию, используя обычную файловую операцию, проблема не отображается

Как исправить проблему с вводом файла.

Я использовал приведенный ниже фрагмент кода, но проблема снова появляется. Файл не закрывается, я думаю

f = fileinput.input("file.txt", inplace=1)
    for line in f:
      if "success" in line:
      print(line)
    f.close()

1 Ответ

1 голос
/ 14 января 2020

В Python 2.7 вы должны явно вызвать close() в экземпляре fileinput:

try:
  f = fileinput.input("file.txt", inplace=1)
    for line in f:
      if "success" in line:
        print line, end=""
else:
  f.close()

Начиная с Python 3.2, класс FileInput может использоваться как менеджер контекста. См. fileinput документация для получения дополнительной информации.

with fileinput.input(files=('file.txt'), inplace=1) as f:
  for line in f:
    if "success" in line:
      print(line)
...