Python Language Modos de archivo


Ejemplo

Hay diferentes modos con los que puede abrir un archivo, especificados por el parámetro de mode . Éstos incluyen:

  • 'r' - modo de lectura. El valor por defecto. Le permite solo leer el archivo, no modificarlo. Al usar este modo el archivo debe existir.

  • 'w' - modo de escritura. Creará un nuevo archivo si no existe, de lo contrario borrará el archivo y le permitirá escribir en él.

  • 'a' - modo de añadir. Escribirá los datos al final del archivo. No borra el archivo, y el archivo debe existir para este modo.

  • 'rb' - modo de lectura en binario. Esto es similar a r excepto que la lectura se fuerza en modo binario. Esta es también una opción por defecto.

  • 'r+' - modo de lectura más modo de escritura al mismo tiempo. Esto le permite leer y escribir en archivos al mismo tiempo sin tener que usar r y w .

  • 'rb+' - modo de lectura y escritura en binario. Lo mismo que r+ excepto que los datos están en binario

  • 'wb' - modo de escritura en binario. Lo mismo que w excepto que los datos están en binario.

  • 'w+' - modo de escritura y lectura. Exactamente igual que r+ pero si el archivo no existe, se crea uno nuevo. De lo contrario, el archivo se sobrescribe.

  • 'wb+' - modo de escritura y lectura en modo binario. Lo mismo que w+ pero los datos están en binario.

  • 'ab' - añadiendo en modo binario. Similar a a excepto que los datos están en binario.

  • 'a+' - modo de añadir y leer. Similar a w+ ya que creará un nuevo archivo si el archivo no existe. De lo contrario, el puntero del archivo se encuentra al final del archivo, si existe.

  • 'ab+' - modo de añadir y leer en binario. Lo mismo que a+ excepto que los datos están en binario.

     with open(filename, 'r') as f:
         f.read()
     with open(filename, 'w') as f:
         f.write(filedata)
     with open(filename, 'a') as f:
         f.write('\n' + newdata)
    
r r + w w + una a +
Leer
Escribir
Crea archivo
Borrar archivo
Posición inicial comienzo comienzo comienzo comienzo Fin Fin

Python 3 agregó un nuevo modo para la exclusive creation para que no truncas o sobrescribas accidentalmente un archivo existente.

  • 'x' - abierto para creación exclusiva, generará FileExistsError si el archivo ya existe
  • 'xb' - abierto para el modo de escritura de creación exclusiva en binario. Lo mismo que x excepto que los datos están en binario.
  • 'x+' - modo de lectura y escritura. Similar a w+ ya que creará un nuevo archivo si el archivo no existe. De lo contrario, se levantará FileExistsError .
  • 'xb+' - modo de escritura y lectura. Exactamente lo mismo que x+ pero los datos son binarios.
X x +
Leer
Escribir
Crea archivo
Borrar archivo
Posición inicial comienzo comienzo

Permita que uno escriba su código de archivo abierto de una manera más pitónica:

Python 3.x 3.3
try:
    with open("fname", "r") as fout:
        # Work with your open file
except FileExistsError:
    # Your error handling goes here

En Python 2 habrías hecho algo como

Python 2.x 2.0
import os.path
if os.path.isfile(fname):
    with open("fname", "w") as fout:
        # Work with your open file
else:
    # Your error handling goes here