Qual é a maneira mais Pythonic de intercalar o conteúdo de arquivos de texto?
Python pergunta:
Se eu tiver uma lista de arquivos, como imprimo a linha 1 de cada arquivo, a linha 2, etc.? (Eu sou um novato em Python, obviamente ...)
Exemplo
file1:
foo1
bar1
file2:
foo2
bar2
file3:
foo3
bar3
Chamada de função:
names = ["file1", "file2", "file3"]
myfct(names)
Saída desejada:
foo1
foo2
foo3
bar1
bar2
bar3
Foi assim que fiz, mas tenho certeza de que existe uma maneira Pythonic mais elegante:
def myfct(files):
file_handlers = []
for myfile in files:
file_handlers.append(open(myfile))
while True:
done = False
for handler in file_handlers:
line = handler.readline()
eof = len(line) == 0 # wrong
if (eof):
done = True
break
print(line, end = "")
print()
if done == True:
break
P.S .: estou usando o Python 2.6 comfrom __future__ import print_function
.