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.