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 :
____
/___/\_
_\ \/_/\__
__\ \/_/\
\ __ __ \ \
__\ \_\ \_\ \ \ __
/_/\\ __ __ \ \_/_/\
\_\/_\__\/\__\/\__\/_\_\/
\_\/_/\ /_\_\/
\_\/ \_\/