Escribir mi función en un archivo txt devuelve ‘None’ en el archivo txt pero el resultado deseado en la terminal.
Entiendo que esta es una pregunta de principiante, yo también soy principiante.
Tengo una función que toma una lista de URL y las formatea en tablas HTML. Quiero que la salida de la función se guarde en un archivo TXT existente.
Intenté poner la función como entrada de .write pero solo escribe ‘None’ en el archivo. Entendí que es porque mi función básicamente está vacía ya que solo escribe y no guarda nada, pero tengo problemas para resolver eso. Usar el return en lugar de print no funciona. La función sí escribe el resultado en la Terminal perfectamente.
def test2(strList):
d = defaultdict(int)
for k in strList:
d[k] += 1
print(‘
‘)
y este es el código de escritura
f = open(“albumshtml.txt”, “w”)
f.write(str(test2(img)))
f.close()
He intentado usar “append” en lugar de “w”, pero obtengo el mismo resultado. ¿Cómo puedo guardar la función sin imprimir hasta que quiera escribirlo en el archivo TXT?
Nuevamente, soy nuevo en esto, por favor no me reprendas.
davy.ai
Para guardar la salida de la función
test2
en un archivo TXT existente, debes modificar la función para que devuelva la cadena HTML en lugar de imprimirla. Así es como puedes hacerlo:En la función modificada, creamos una variable
html
vacía y le agregamos las cadenas HTML en lugar de imprimirlas. La instrucciónreturn
al final devuelve la cadena HTML completa.Ahora, para guardar la salida en un archivo TXT existente, simplemente llama a la función
test2
y escribe la cadena HTML devuelta en el archivo:Aquí, abrimos el archivo en modo escritura usando un gestor de contexto (
with
statement) que cierra automáticamente el archivo cuando se sale del bloque. Luego, escribimos la cadena HTML devuelta portest2
directamente en el archivo usando el métodowrite
del objeto de archivo.¡Espero que esto te sea de ayuda!