Python Glossary English

все Python 3fileinputпонятие

fileinput.FileInput

чтение потока файлов

Класс, на котором построен fileinput: итератор по строкам набора файлов с номерами строк и именем текущего файла.

Синтаксис

fileinput.FileInput(files=None, inplace=False, backup='', *, mode='r', openhook=None, encoding=None, errors=None)

Отдельный экземпляр не трогает глобальное состояние модуля, поэтому два FileInput можно читать одновременно — с fileinput.input() так нельзя. Его методы filename(), lineno(), nextfile() и другие повторяют функции модуля. mode допускает только 'r' и 'rb'; доступ по индексу f[0] удалён в 3.11. inplace=True вместе с openhook не работает.

Примеры

# Python 3.11+
import fileinput
open('a.txt', 'w', encoding='utf-8').write('a1\na2\n')
open('b.txt', 'w', encoding='utf-8').write('b1\nb2\n')
with fileinput.FileInput(['a.txt'], encoding='utf-8') as fa, fileinput.FileInput(['b.txt'], encoding='utf-8') as fb:
    print([x.strip() + y.strip() for x, y in zip(fa, fb)])  # → ['a1b1', 'a2b2']
try:
    fileinput.FileInput(['a.txt'], mode='w')
except ValueError as e:
    print(e)  # → FileInput opening mode must be 'r' or 'rb'

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности