Python Glossary English

все Python 3fileinputфункция

fileinput.input()

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

Создаёт глобальный объект FileInput для построчного чтения нескольких файлов подряд или stdin, если файлы не заданы.

Синтаксис

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

Без списка файлов берёт имена из sys.argv[1:], а при пустом sys.argv — читает stdin; '-' в списке тоже означает stdin. Строки приходят с '\n' на конце. Пока предыдущий input() не закрыт и уже читал, новый вызов падает RuntimeError 'input() already active' — поэтому используйте with или fileinput.close(). Без encoding файлы читаются в кодировке локали.

Примеры

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.input(['a.txt', 'b.txt'], encoding='utf-8') as f:
    print([line.rstrip() for line in f])  # → ['a1', 'a2', 'b1', 'b2']
import fileinput
open('a.txt', 'w', encoding='utf-8').write('a1\na2\n')
for line in fileinput.input(['a.txt'], encoding='utf-8'):
    break
try:
    fileinput.input(['a.txt'], encoding='utf-8')
except RuntimeError as e:
    print(e)  # → input() already active
fileinput.close()

См. также

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

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