Escriba resultados de archivo .py importado en archivo de texto
Tengo un archivo .py (array.py) que crea un array y lo imprime, y quiero importarlo en otro archivo .py (write.py) y escribir el array a un archivo de texto (file.txt):
array.py es aproximadamente así:
def array(size, var):
return array
def prettyPrint(array):
for row in array:
for col in row:
print("{}".format(col), end=" ")
print("")
main()
En escritura. Tengo:
with open('file.txt', 'w') as f:
f.write("Some other info")
import array as a
a.main()
¿Cómo escribo el array en file.txt? Traté de varias cosas, pero f.write() sólo toma cuerdas, y necesito mantener mi array juntos, limpio y ordenado. Siento que hay una manera de usar bastantePrint() pero no estoy seguro de cómo (estoy bastante nuevo en Python). ¿Qué métodos me estoy perdiendo aquí?
Pregunta hecha hace 3 años, 4 meses, 28 días - Por quantumquill62b1
4 Respuestas:
-
Hay una función en
numpy
-np.savetxt
para estos fines:https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html.Respondida el Dec 18, 2020 a las 10:32 - por codealchemy
Votos positivos: 0 | Votos negativos: 0 -
Puede convertir el array a una cadena o formatearlo como desee.
# Convert the array to a string: [1, 2, 3] f.write(str(array)) # Seperate each element: 1;2;3 (the seperator is ";" in this case) f.write(seperator.join(array))
Si su matriz es multidimensional puede repetir este proceso para cada matriz. (En este caso usted necesita cambiar el archivo-mode para
"a"
para anexar cada array y no anular todo)# Loop through each array and seperate them: 1, 2, 3; a, b, c; x, y, z for array in arrays: f.write(seperator.join(array)) # Example: seperator = ";" arrays = [ [1, 2, 3], ["a", "b", "c"], ["x", "y", "z"]] for array in arrays: f.write(seperator.join(array) + "\n") # The \n appends a new line after each array # Output: 1; 2; 3 a; b; c x; y; z
Respondida el Dec 18, 2020 a las 10:41 - por techinnovator
Votos positivos: 0 | Votos negativos: 0 -
Para escribir el contenido del array en el archivo de texto
file.txt
, puedes modificar un poco la funciónprettyPrint
para que en lugar de imprimir en la consola, retorne una cadena formateada con el contenido del array. Luego, en el archivowrite.py
, puedes llamar a esa función y escribir el resultado en el archivo de texto.Primero, modifica la función
prettyPrint
en el archivoarray.py
para que en lugar de imprimir directamente, construya una cadena con el contenido del array y la retorne:python def prettyPrint(array): result = "" for row in array: for col in row: result += "{} ".format(col) result += "\n" return result
Luego, en tu archivo
write.py
, puedes llamar a la funciónprettyPrint
y escribir el resultado en el archivo de texto:python with open('file.txt', 'w') as f: f.write("Some other info\n") import array as a size = 3
Define el tamaño del array
var = 1Define el valor de los elementos del array
my_array = a.array(size, var) array_str = a.prettyPrint(my_array)Obtener la cadena formateada del array
f.write(array_str)Con estos cambios, al ejecutar
write.py
, se creará un archivofile.txt
con la información del array formateada de manera adecuada.Este método te permitirá mantener la estructura ordenada del array en el archivo de texto. ¡Espero que esta solución te sea de ayuda!
Respondida el Dec 19, 2020 a las 10:28 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Para escribir los valores del array en un archivo de de archivo de forma formateada, sigue est pasos:
- En el archivo `array.py`:
<ul><li>Crea una función para devolver el array formateado como una cadena:</li></ul> <pre><code>python def get_formatted_array(): array_string = "" for row in array: for col in row: array_string += f"{col} " array_string += "\n" return array_string </code></pre>
- En el archivo `write.py`:
<ul><li>Imprime el array formateado al archivo de archivo de usando la función `get_formatted_array` de `array.py`:</li></ul> <pre><code>python with open('file.txt', 'w') as f: f.write("Otra información\n") f.write("---------------------\n") f.write(a.get_formatted_array()) </code></pre>
Esto escribirá el array en
file.txt
en formato de filas y columnas separadas por espacios.Respondida el Dec 19, 2020 a las 10:42 - por Gemini
Votos positivos: 0 | Votos negativos: 0