7.4 Écrivons
En Python ! (rime faible)
Nous avons déjà créé un objet « file » dans la section précédente, en utilisant Python : ne pas saisir
Un objet « file » n’a pas seulement une fonction « read » . Après tout, un fiier ne serait pas très utile si on pouvait seulement prendre des fies mais ne jamais en rajouter.
Nous pouvons créer un nouveau fiier vide en passant un autre paramètre à la fonction
« open » .
Contrôlez d’abord qu’il n’existe pas de fiier « nouveau.txt » sur votre bureau. Si cela est le cas vous pouvez soit le renommer (par exemple en « ancien.txt » , soit anger
« nouveau.txt » en ce que vous voulez dans les exemples qui suivent. Enfin, une fois ce contrôle effectué, vous pouvez essayer le code suivant :
à taper par exemple en reprenant l'existant import os,platform
Exécutez ce programmes puis regardez sur votre bureau, un fiier « nouveau.txt » vient d’être créé. Le paramètre « w » (pourwrite, écrire en anglais) est utilisé pour indiquer à Python que nous voulons écrire dans un (nouveau) fiier. Si le fiier n’existe pas il est créé, s’il existe son contenu est détruit.
Nous pouvons maintenant utiliser la fonction « write » . Une fois que nous aurons écrit il convient d’indiquer à Python que nous ne désirons plus écrire dans le fiier en utilisant la fonction « close » (closesignifie fermer en anglais). Notez au passage qu’il est de bon ton d’utiliser aussi la fonction « close » quand on finit d’utiliser un fiier.
à taper par exemple en reprenant l'existant import os,platform
def chemin_bureau() :
if platform.release()=='XP' :
return os.path.join(os.environ['USERPROFILE'],"Bureau") else :
return os.path.join(os.environ['USERPROFILE'],"Desktop") fichier = open(os.path.join(chemin_bureau(),'nouveau.txt'),'w') fichier.write('''Ceci est un fichier de test.
Ce fichier s'étend sur plusieurs lignes.
Trois en fait !''') fichier.close()
Si vous ouvrez le fiier avec votre éditeur de texte favori (le bloc note à priori) vous verrez qu’il contient le texte :
contenu de nouveau.txt Ceci est un fichier de test.
Ce fichier s'étend sur plusieurs lignes.
Trois en fait !
Ou mieux encore nous pouvons utiliser Python pour lire ce texte : à taper par exemple en reprenant l'existant import os,platform
def chemin_bureau() :
if platform.release()=='XP' :
return os.path.join(os.environ['USERPROFILE'],"Bureau") else :
return os.path.join(os.environ['USERPROFILE'],"Desktop") fichier = open(os.path.join(chemin_bureau(),'nouveau.txt'),'w') fichier.write('''Ceci est un fichier de test.
Ce fichier s'étend sur plusieurs lignes.
Trois en fait !''') fichier.close()
fichier = open(os.path.join(chemin_bureau(),'nouveau.txt')) print(fichier.read())
fichier.close
À ce point quelque ose pourrait vous surprendre : le résultat de la commande ci-dessus reste nos trois lignes. Or nous avons écritdeux fois dans le fiier. e s’est-il passé ?
7.4. ÉCRIVONS EN PYTHON ! (RIME FAIBLE) 81
L’ouverture en mode « w » indique que nous souhaitons écrire en écriture à partir de zéro. Le contenu initial du fiier a été détruit. Nous pouvons modifier le « w » en « a » pour append qui signifie ajouter en anglais.
à taper par exemple en reprenant l'existant import os,platform fichier.write('''Ceci est un fichier de test.
Ce fichier s'étend sur plusieurs lignes.
Trois en fait !''') fichier.close()
fichier = open(os.path.join(chemin_bureau(),'nouveau.txt')) print(fichier.read())
fichier.close
Si nous exécutons ce programme le résultat devrait être : résultat en mode ajout Ceci est un fichier de test.
Ce fichier s'étend sur plusieurs lignes.
Trois en fait !Ceci est un fichier de test.
Ce fichier s'étend sur plusieurs lignes.
Trois en fait !
Bizarrement le résultat est sur cinq lignes et non pas six (deux fois trois). En fait quand nous saisissons le texte sur plusieurs lignes le caractère entrée que nous ne voyons pas est pris en compte. La dernière ligne ne finissait pas le caractère entrée et la première ne commençait pas par celui-ci. Nous pouvons modifier la aîne pour que les nouvelles lignes commencent par un retour à la ligne :
à taper fichier.write('''
Ceci est un fichier de test.
Ce fichier s'étend sur plusieurs lignes.
Trois en fait !''')
Notez bien que pour alléger la notation l’ensemble du code de votre fiier n’a pas été repris. Par ailleurs et pour information, le retour à la ligne peut aussi être saisi « \n » . Cee notation est simple à retenir : « \n » comme nouvelle ligne.
Tortues à profusion 8
8.1 Le retour de la tortue
Revenons au module tortue que nous avions commencé à examiner au apitre 3 page 29. Nous allons examiner tout un ensemble de fonctions du module turtle.
Vous vous demandez peut-être comment avoir des informations sur toutes ces com-mandes, en fait Python inclut une aide interne (sans parler de l’aide disponible dans le menu démarrer). Vous pouvez faire « dir(turtle) » pour avoir la liste de toutes les commandes inclues dans turtle. La commande « dir » est disponible pour tous les modules. De plus les modules bien développés incluent une aide en ligne par exemple « help(turtle.Pen()) ».
Cee aide est en anglais, malheureusement pour les francophones. Néanmoins, cela pourrait être pire dans une langue dont vous ne comprendriez même pas les caractères. Vous pouvez essayer ces commandes dans la console ou le shell :
à taper
>>> dir(str)
>>> help(str.isalpha)
>>> import turtle
>>> dir(turtle)
>>> help(turtle.Pen)
Pour information, la méthode « isalpha » teste une aîne pour savoir si elle est com-posée de leres uniquement et renvoie vrai (True) ou faux (False).
Revenons, à nouveau, sur le module « turtle ». Rappelez-vous, pour affier une zone de dessin et dessiner dessus, nous avions besoin d’importer le module « turtle » et de créer un objet « Pen » :
ne pas saisir
>>> import turtle
>>> tortue = turtle.Pen()
À l’époque nous fermions la fenêtre en lançant « turtle.bye() ».
Maintenant que nous savons utiliser IDLE pour créer, exécuter et sauvegarder des pro-grammes nous ne souhaitons pas ouvrir une fenêtre de dessins a aque exécution, la com-mande « turtle.bye() » permerait de fermer la fenêtre dessin mais nous ne verrions
83
plus le résultat de nos programmes c’est pourquoi je vous propose d’utiliser la méthode
« turtle.exitonclick » (exit signifie sortie,onsignifie sur,cli signifie clic).
N’oubliez pas de créer une nouvelle fenêtre (new windowsdans le menu « File » d’IDLE ou de rouvrir un programme existant pour taper votre code.
à taper import turtle
tortue = turtle.Pen() tortue.forward(100) turtle.exitonclick
Lancez le programme (sauvez le sous le nom de votre oix finissant par « .py » si né-cessaire) puis cliquez sur la fenêtre de dessin pour quier le programme.
Nous pouvons maintenant utiliser des fonctions simples pour déplacer notre tortue sur le zone de dessin et dessiner des formes simples. Mais encore plus intéressant nous pouvons utiliser ce que nous avons appris dans les apitres précédents. Par exemple, le code que nous avions utilisé pour créer un carré était :
ne pas saisir
Nous pouvons maintenant le ressaisir en utilisant un itérateur : à taper
Ce qui fait neement moins à saisir, mais nous pouvons maintenant faire des oses un peu plus intéressantes. Essayez donc ce qui suit :
à taper
Ce code produit une étoile à huit branes comme montré sur la Figure 8.1 (la tortue tourne de 225 degrés puis avance de 100 pixels, huit fois).