import fileinput fp = fileinput.input(files=None, inplace=False, \ backup='', *, mode='r', openhook=None encoding=None, errors=None)
files=None - последовательность из имен файлов,inplace=False - перезаписывать файл на месте,backup='' - str, расширение файлов резервной копии,mode='r' - режим чтения последовательности файлов,openhook=None - функция, возвращающая объект в виде файла.encoding=None - кодировка файла (доступно с версии Python 3.10),errors=None - режим обработки ошибок кодировки (доступно с версии Python 3.10).Функция input() модуля fileinput создает экземпляр класса fileinput.FileInput() и возвращает глобальное состояние чтения потока.
Экземпляр класса будет использоваться как глобальное состояние для функций этого модуля, а также для итерации по строкам.
Параметры функции fileinput.input() будут переданы в конструктор класса fileinput.FileInput().
Экземпляр FileInput может использоваться как менеджер контекста в операторе with.
Изменено в Python 3.8: добавлены ключевые аргументы mode и openhook.
Изменено в Python 3.10: добавлены ключевые аргументы encoding и errors.
В примере ввод закрывается после выхода оператора with, даже если возникает исключение:
import fileinput with fileinput.input(files=('spam.txt', 'eggs.txt'), encoding="utf-8") as f: for line in f: process(line)
Пример вывода комментариев в коде во всех файлах проекта, расположенного в определенном каталоге.
import fileinput, glob, os # каталог проекта path = 'appmy' # паттерн поиска файлов по расширению pattern = '**/*.py' glob_path = os.path.join(path, pattern) list_files = glob.glob(glob_path, recursive=True) if list_files: with fileinput.FileInput(files=list_files) as fp: for line in fp: strip_line = line.lstrip() if strip_line.startswith('#'): print(fp.filename(), strip_line)