2.3. Écrire un fichier de texte

L’écriture se fait de manière plus simple encore que la lecture. Il faut ouvrir le fichier dans l’un des différents modes d’écriture ('w', 'x' ou 'a') puis utiliser la méthode write() avec en paramètre une chaîne de caractère contenant le texte à écrire dans le fichier. Les retours à la ligne doivent être explicitement indiqués avec la séquence d’échappement \n.

Créons pour example un petit programme qui demande à l’utilisateur de choisir un nom de fichier, puis qui y écrit ligne après ligne le texte saisi par l’utilisateur. Le programme s’interrompt lorsque celui-ci entre une ligne vide.

name = input("Entrez le nom du fichier de sauvegarde : ")
with open(name, 'w', encoding = "utf-8") as file:
    line = input("> ")           # on lit la première ligne
    while line != "":            # tant que la ligne n'est pas vide...
        file.write(line + '\n')  # on l'écrit (avec retour à la ligne)
        line = input("> ")       # on lit la ligne suivante

Nous pouvons par exemple enregistrer un ficher en art ASCII dans un fichier.

Entrez le nom du fichier de sauvegarde : art.txt
>       ____
>      /___/\_
>     _\   \/_/\__
>   __\       \/_/\
>   \   __    __ \ \
>  __\  \_\   \_\ \ \   __
> /_/\\   __   __  \ \_/_/\
> \_\/_\__\/\__\/\__\/_\_\/
>    \_\/_/\       /_\_\/
>       \_\/       \_\/
>

Le fichier art.txt résultant contiendra bien notre œuvre d’art :

      ____
     /___/\_
    _\   \/_/\__
  __\       \/_/\
  \   __    __ \ \
 __\  \_\   \_\ \ \   __
/_/\\   __   __  \ \_/_/\
\_\/_\__\/\__\/\__\/_\_\/
   \_\/_/\       /_\_\/
      \_\/       \_\/