Cuál es la forma más pitónica de intercalar contenidos de archivos de texto?
Python pregunta:
Si tengo una lista de archivos, ¿cómo imprimo la línea # 1 de cada archivo, luego la línea # 2, etc.? (Soy un novato de Python, obviamente ...)
Ejemplo
file1:
foo1
bar1
file2:
foo2
bar2
file3:
foo3
bar3
Llamada de función
names = ["file1", "file2", "file3"]
myfct(names)
Salida deseada
foo1
foo2
foo3
bar1
bar2
bar3
Así es como lo hice, pero estoy seguro de que hay una manera más elegante y pitónica:
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 .: Estoy usando Python 2.6 confrom __future__ import print_function
.