Tem um detalhe que pode fazer diferença principalmente ao manipular arquivos grandes.
Métodos como read
e readlines
carregam todo o conteúdo do arquivo para a memória: o segundo é ainda pior porque primeiro ele cria uma lista com todas as linhas, e só depois o for
percorre esta lista. Ou seja, vc itera pelo conteúdo do arquivo duas vezes.
Em arquivos pequenos não faz diferença, mas em arquivos muito grandes, pode acabar gastando mais memória que o necessário.
Neste caso, se vc só precisa manipular uma linha por vez, e depois não precisa mais dela, uma solução melhor é iterar uma linha de cada vez.
E como em Python arquivos são iteráveis, basta um for
simples:
with open('meu_arquivo.txt', 'r') as arquivo:
for linha in arquivo:
print(linha, end='')
Assim, depois que a linha é lida e usada, logo é descartada, gastando menos memória. Claro que isso vale apenas se os dados não são guardados em algum lugar, pois aí vai ocupar memória do mesmo jeito (mas se isso é uma necessidade, não tem o que fazer).
Novamente, para arquivos pequenos, tanto faz. Mas pode fazer diferença para arquivos maiores.