fileinput oferece uma iteração única sobre vários arquivos e, opcionalmente, a entrada padrão. Durante o percurso, você consulta o arquivo atual, o número da linha e se aquela linha é a primeira do arquivo.

Leia arquivos como um fluxo

import fileinput

for line in fileinput.input(files=("app.log", "worker.log"), encoding="utf-8"):
    source = fileinput.filename()
    number = fileinput.filelineno()
    print(source, number, line.rstrip())

Trate stdin e encoding

Um hífen representa a entrada padrão. Declare encoding e errors em vez de depender da configuração do sistema. Use o objeto como context manager quando precisar garantir o fechamento diante de exceções.

Tenha cautela com inplace

inplace=True redireciona a saída para o arquivo que está sendo processado. Uma exceção ou impressão indevida pode deixar resultado parcial. Use backup e valide em cópia antes de automatizar edições importantes.

Continue estudando

Leia também manipulação de arquivos em Python. A documentação oficial do Python, consultada em 22 de julho de 2026, detalha estado global, hooks de abertura e edição in-place.