ARTASCIIcréateur en caractères
Guide pratique · exemples reproductibles

Afficher un dessin ASCII en Python : chaînes et fichiers TXT

Pour un petit dessin, utilisez une chaîne multiligne et print. Pour un fichier réutilisable, lisez le TXT avec un encodage explicite. Les barres inverses et les espaces initiaux font partie du dessin : ne les supprimez pas automatiquement.

Exemple 1 : une chaîne brute multiligne

art = r""" /\_/\
( o.o )
 > ^ <"""
print(art)

Le préfixe r garde les barres inverses du chat sans les convertir en séquences d’échappement. Le dessin commence sur la ligne d’ouverture pour ne pas ajouter une première ligne vide. print ajoute un saut de ligne final. La documentation des chaînes Python décrit les formes brutes et triples guillemets.

Télécharger cet exemple

Exemple 2 : lire un TXT sans ajouter de ligne

from pathlib import Path

art = Path("dessin.txt").read_text(encoding="utf-8")
print(art, end="")

Enregistrez votre dessin sous dessin.txt dans le répertoire de travail. Path.read_text lit son contenu ; encoding="utf-8" rend le choix explicite. end="" évite que print ajoute son propre saut de ligne. Si le fichier se termine déjà par un saut, il reste présent ; sinon la commande n’en crée pas.

Mesurer un dessin ASCII

lines = art.splitlines()
width = max((len(line) for line in lines), default=0)
print(width, len(lines))

Pour le chat du premier exemple, le résultat est 7 3 : sept colonnes au maximum et trois lignes. Ce calcul fonctionne pour les caractères ASCII imprimables, sans tabulations. Pour Unicode, len compte des points de code, pas nécessairement des colonnes affichées. Une tabulation doit être développée selon des taquets connus avant de mesurer.

Pièges à éviter

strip() enlève aussi les espaces en début de dessin ; il peut déplacer les oreilles. Une chaîne brute ne peut pas se terminer par un nombre impair de barres inverses juste avant son délimiteur. Si votre dessin contient lui-même les triples guillemets choisis, préférez un fichier TXT. Enfin, ne transformez pas le texte en f-string sans besoin : des accolades du dessin pourraient être interprétées.

Périmètre et étape suivante

Ces exemples utilisent Python 3 et n’installent aucune bibliothèque. Ils affichent du texte déjà préparé ; ils ne convertissent pas une image en ASCII. Le terminal doit encore utiliser une police adaptée et disposer d’assez de colonnes. Consultez le guide terminal ou créez un TXT dans le convertisseur d’image.