Tengo un problema con la conversión de una lista a un archivo .txt. Tengo que guardar una matriz Nx4 en un archivo de texto sin corchetes sin cambiar el orden ni las líneas. Mi código es:
for n,en in enumerate(var_4):
stats.append(str([var_1,var_2[n],var3[n],en]))
¿Qué comando de escritura debo escribir para obtener un archivo de texto como:
var_1 , var_2[0] , var_3[0] , var_4[0]
var_1 , var_2[1] , var_3[1] , var_4[1]
...
var_1 , var_2[N] , var_3[N] , var_4[N]
3 respuestas
s = ", ".join(list)
Unirá una lista de cadenas en una cadena con "," como delimitadores
s = ", ".join(map(str, list))
Funcionará si los elementos de una lista no son cadenas
o.write(s +"\n")
Escribirá el resultado y agregará una nueva línea después de escribir una cadena
Gracias a las dos respuestas. Se requería una combinación de ambos para obtener el resultado deseado. La solución fue:
with open('list.txt','a') as f:
for l,el in enumerate(stats):
string = ', '.join(map(str,el))
for item in string:
f.write(item)
f.write('\n')
Gracias de nuevo, me ahorraste muchos problemas.
Está convirtiendo una lista en una cadena, lo que le dará una representación legible de la lista con corchetes y comas.
En su lugar, puede recorrer la lista y convertir los elementos en cadenas individualmente. Puedes hacer esto con un generador:
strings = (str(item) for item in [var_1, var_2[n], var3[n], en])
Luego puede escribir las cadenas en un archivo de texto, por ejemplo:
with open("list.txt", "a") as f:
for item in strings:
f.write(item + "\n")
"a"
significa que abre el archivo en modo de adición en lugar de sobrescribir su contenido cada vez.
O simplemente recorra la lista y convierta los elementos en cadenas directamente al recorrerla:
with open("list.txt", "a") as f:
for item in mylist:
f.write(str(item) + "\n")
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.