Python Language Modes de fichier


Exemple

Vous pouvez ouvrir un fichier avec différents modes, spécifiés par le paramètre mode . Ceux-ci inclus:

  • 'r' - mode de lecture. Le défaut. Cela vous permet seulement de lire le fichier, pas de le modifier. Lorsque vous utilisez ce mode, le fichier doit exister.

  • 'w' - mode d'écriture. Il créera un nouveau fichier s'il n'existe pas, sinon le fichier sera effacé et vous pourrez y écrire.

  • 'a' - mode d'ajout. Il écrira des données à la fin du fichier. Il n'efface pas le fichier et le fichier doit exister pour ce mode.

  • 'rb' - mode de lecture en binaire. Ceci est similaire à r sauf que la lecture est forcée en mode binaire. C'est aussi un choix par défaut.

  • 'r+' - mode de lecture plus mode d'écriture en même temps. Cela vous permet de lire et d'écrire dans des fichiers en même temps sans avoir à utiliser r et w .

  • 'rb+' - mode lecture et écriture en binaire. La même chose que r+ sauf que les données sont en binaire

  • 'wb' - mode d’écriture en binaire. La même chose que w sauf que les données sont en binaire.

  • 'w+' - mode d'écriture et de lecture. Le même que r+ mais si le fichier n'existe pas, un nouveau est créé. Sinon, le fichier est écrasé.

  • 'wb+' - mode d’écriture et de lecture en mode binaire. La même chose que w+ mais les données sont en binaire.

  • 'ab' - ajout en mode binaire. Similaire à a sauf que les données sont en binaire.

  • 'a+' - mode d’ajout et de lecture. Semblable à w+ car il créera un nouveau fichier si le fichier n'existe pas. Sinon, le pointeur de fichier se trouve à la fin du fichier s'il existe.

  • 'ab+' - mode d'ajout et de lecture en binaire. La même chose que a+ sauf que les données sont en binaire.

     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 + une un +
Lis
Écrire
Crée un fichier
Efface le fichier
Position initiale Début Début Début Début Fin Fin

Python 3 a ajouté un nouveau mode de exclusive creation pour que vous ne puissiez pas tronquer ou écraser accidentellement un fichier existant.

  • 'x' - ouvert pour la création exclusive, soulèvera FileExistsError si le fichier existe déjà
  • 'xb' - ouvert pour le mode d'écriture de création exclusif en binaire. La même chose que x sauf que les données sont en binaire.
  • 'x+' - mode lecture et écriture. Semblable à w+ car il créera un nouveau fichier si le fichier n'existe pas. Sinon, FileExistsError .
  • 'xb+' - mode d’écriture et de lecture. La même chose que x+ mais les données sont binaires
X x +
Lis
Écrire
Crée un fichier
Efface le fichier
Position initiale Début Début

Permettez à quelqu'un d'écrire votre code ouvert de manière plus pythonique:

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, vous auriez fait quelque chose comme

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