Python Language Escribiendo en un archivo


Ejemplo

with open('myfile.txt', 'w') as f:
    f.write("Line 1")
    f.write("Line 2")
    f.write("Line 3")
    f.write("Line 4")

Si abres myfile.txt , verás que su contenido es:

Línea 1Línea 2Línea 3Línea 4

Python no agrega automáticamente saltos de línea, debe hacerlo manualmente:

with open('myfile.txt', 'w') as f:
    f.write("Line 1\n")
    f.write("Line 2\n")
    f.write("Line 3\n")
    f.write("Line 4\n")

Línea 1
Línea 2
Línea 3
Linea 4

No use os.linesep como terminador de línea al escribir archivos abiertos en modo de texto (el valor predeterminado); use \n lugar.

Si desea especificar una codificación, simplemente agregue el parámetro de encoding a la función de open :

with open('my_file.txt', 'w', encoding='utf-8') as f:
    f.write('utf-8 text')

También es posible utilizar la declaración de impresión para escribir en un archivo. La mecánica es diferente en Python 2 vs Python 3, pero el concepto es el mismo en que puedes tomar la salida que habría ido a la pantalla y enviarla a un archivo.

Python 3.x 3.0
with open('fred.txt', 'w') as outfile:
    s = "I'm Not Dead Yet!"
    print(s) # writes to stdout
    print(s, file = outfile) # writes to outfile

    #Note: it is possible to specify the file parameter AND write to the screen
    #by making sure file ends up with a None value either directly or via a variable
    myfile = None
    print(s, file = myfile) # writes to stdout
    print(s, file = None)   # writes to stdout

En Python 2 habrías hecho algo como

Python 2.x 2.0
outfile = open('fred.txt', 'w')
s = "I'm Not Dead Yet!"
print s   # writes to stdout
print >> outfile, s   # writes to outfile

A diferencia de usar la función de escritura, la función de impresión agrega automáticamente saltos de línea.