Conversión a lista de listas desde un archivo en Python
Estoy tratando de ejecutar un archivo C desde un código de Python ejecutando el ejecutable de C. A continuación, se muestra mi código:
import subprocess
import sys
dataset = sys.argv[1]
def func():
subprocess.run(['/home/dev/exec_file', dataset, 'outfile'])
f_result = []
f = open('outfile', 'r')
content = f.read()
f_result.append(content)
print(f_result)
#print(content.rstrip('\n'))
return f_result
Aquí, si simplemente escribo print(content.rstrip('\n'))
, el resultado sería:
*,*,1,*,0
*,*,2,2,1
*,*,*,3,1
*,*,*,4,2
*,*,3,*,2
Ahora quiero retornar una lista de listas. Esto se vería así:
[['*', '*', '1', '*', '0'], ['*', '*', '2', '2', '1'], ['*', '*', '*', '3', '1'], ['*', '*', '*', '4', '2'], ['*', '*', '3', '*', '2']]
En mi enfoque anterior, print(f_result)
muestra el resultado como: ['*,*,1,*,0\n*,*,2,2,1\n*,*,*,3,1\n*,*,*,4,2\n*,*,3,*,2\n']
¿Cómo puedo lograr esto y retornar una lista de listas? Por favor, ayuda.
davy.ai
Para devolver una lista de listas, debes modificar la función
func()
para dividir la cadena con saltos de línea (\n
) y luego dividir cada línea por comas (,
). Aquí está el código modificado:El método
strip()
se utiliza para eliminar los espacios en blanco iniciales o finales de la cadena. Luego, se utiliza el métodosplit()
para dividir la cadena por saltos de línea (\n
) para obtener las filas. Finalmente, se utiliza un bucle para dividir cada fila por comas (,
) y se agrega a una nueva lista (f_result
).Ahora, si llamas a la función
func()
, devolverá una lista de listas como se desea: