Como ya te dijeron usa funciones, es genial para mantener el código modularizado.
Toma como ejemplo este bloque de código.
Código Python:
Ver originalfile1 = open("log_1.txt","r")
file2 = open("log_2.txt","r")
file3 = open("log_3.txt","r")
file4 = open("log_4.txt","r")
datos_f0 = []
for i in f0_dat:
a = i.split(',')
del a[-1]
a = map(float, a)
datos_f0.append(a)
f1_dat = file1.readlines()
datos_f1 = []
for i in f1_dat:
a = i.split(',')
del a[-1]
a = map(float, a)
datos_f1.append(a)
f2_dat = file2.readlines()
datos_f2 = []
for i in f2_dat:
a = i.split(',')
del a[-1]
a = map(float, a)
datos_f2.append(a)
f3_dat = file3.readlines()
datos_f3 = []
for i in f3_dat:
a = i.split(',')
del a[-1]
a = map(float, a)
datos_f3.append(a)
f4_dat = file4.readlines()
datos_f4 = []
for i in f4_dat:
a = i.split(',')
del a[-1]
a = map(float, a)
datos_f4.append(a)
43 lineas de código (y no añadí el close de los archivos) y un momento, ese código esta repetido muchas veces. Si quisiera un quinto archivo tendrías que copiar y pegar otro bloque de código o peor aun si quieres modificar algo, tienes que hacerlo 4 veces y la probabilidad de que te equivoques en editar un bloque es alto.
Usando funciones, podemos hacer eso en pocas lineas.
Código Python:
Ver originaldef load_data(filename):
data = []
with open(filename, 'r') as f:
for i n f:
a = map(float, i.split(',')[:-1])
data.append(a)
return data
files = ["log_1.txt", "log_2.txt", "log_3.txt", "log_4.txt"]
datos = [load_data(f) for f in files]
Nota que son menos lineas, si quiero un quinto archivo solo agrego otro archivo a lista de archivos. Si quisiera modificar algo, lo haría en una sola función y no en varias partes del código. Fijate que tampoco enumero mis variables como dato1, dato2, etc... Si no creo una lista así, si quiero el primer dato solo accedo a el como un arreglo dato[0].