Python >> Tutoriel Python >  >> Python

Comment incrémenter un nom de fichier en Python ?

Défi :Soit un programme Python qui écrit des données dans un fichier. Si vous exécutez à nouveau le programme, il écrasera le fichier écrit par la première exécution du programme.

file = open("file.dat", "w")

# ... Do some processing ...

file.write("Result of program")
file.close()

Chaque fois que vous exécutez ce programme, le contenu original dans file.dat sera écrasé.

Comment éviter cet écrasement en ajoutant un suffixe entier au nom de fichier et en l'incrémentant de un à chaque fois que vous relancez le programme ?

What You Want:
- – file_1.dat                        # Execution 1
- – file_2.dat                        # Execution 2
...
- – file_n.dat                        # Execution n

Solution :os.path.exist()

Créer une variable de comptage i et l'incrémenter de un dans une boucle while tant que file_i.dat existe—en utilisant le os.path.exist() méthode pour vérifier l'existence. Après avoir quitté la boucle, la variable i est définie sur le premier entier inutilisé dans un nom de fichier. Maintenant, ouvrez file_i.dat , écrivez le contenu et fermez-le. Aucun fichier ne sera écrasé.

Voici le programme complet :

import os

# Determine incremented filename
i = 0
while os.path.exists(f"file_{i}.dat"):
    i += 1

file = open(f"file_{i}.dat", "w")

# ... Do some processing ...

file.write("Result of program")
file.close()

Le programme effectue les étapes suivantes :

  • Déterminer l'identifiant i en parcourant tous les entiers, incrémentez-les de un à chaque itération de boucle, jusqu'à ce que vous trouviez le premier entier qui n'existe pas encore dans un nom de fichier.
  • Utilisez le os.path.exist() méthode pour vérifier si le nom de fichier existe.
  • Utilisez une chaîne de format f"file_{i}.dat" pour créer les noms file_1.dat , file_2.dat , …

Après avoir exécuté ce programme trois fois, vous obtenez les trois fichiers suivants dans le même dossier que votre programme :

What You Get:
- – file_1.dat                        # Execution 1
- – file_2.dat                        # Execution 2
- – file_3.dat                        # Execution 3

Ressources :Comment créer un nom de fichier incrémenté en Python ?