write with read open modes example create python file

with - .write no funciona en Python



python write text file (5)

Soy bastante nuevo en Python, así que espero que me esté perdiendo algo obvio aquí, pero me ha dejado perplejo. Fragmento de mi programa a continuación:

outFile = open(''P4Output.txt'', ''w'') outFile.write(output) print output print "Output saved to /"P4Output.txt/"/n"

La salida se imprime correctamente en la consola, pero si abro el archivo, estará en blanco. Si borro el archivo y ejecuto mi programa nuevamente, el archivo se crea pero aún está vacío. Usé este mismo bloque de código en otro programa mío anteriormente y funcionó, y aún funciona. Sin embargo, si abro Python e intento algo simple como:

f = open(''test.txt'', ''w'') f.write("test")

Nuevamente, se crea test.txt pero se deja en blanco. ¿Lo que da?


¿ f.close() al final de tu programa?


Debido al almacenamiento en búfer, es posible que la cadena no aparezca en el archivo hasta que llame a flush() o close() . Así que trata de llamar a f.close() después de f.write() . También se recomienda usar with los objetos de archivo, que cerrará automáticamente el archivo, incluso si se sale del bloque with anticipación debido a una excepción o declaración de return .

with open(''P4Output.txt'', ''w'') as f: f.write(output)


Intente incluir sus declaraciones en un bloque try / catch para saber si ocurre algo durante la apertura o la escritura en el archivo:

try: outFile = open(''P4Output.txt'',''w'') outFile.write(output) outFile.close() except IOError as (errno,strerror): print "I/O error({0}): {1}".format(errno, strerror)

Y siempre cierre su archivo para que el sistema pueda vaciar sus datos en el archivo antes de cerrarlo.


Necesitas hacer un

outFile.flush()

Si desea que los contenidos almacenados en el búfer se escriban en el disco. Si ha terminado de escribir en el archivo, una llamada file.close implícitamente los datos almacenados en el búfer antes de cerrar el archivo.


tal vez deberías usar una ruta absoluta en lugar de una relativa.