From ccf43ee64a6fd9a57b850efcc86483d9350cf33f Mon Sep 17 00:00:00 2001 From: "Jean-Loup Beaussart (jamesmagnus)" Date: Fri, 13 Feb 2015 21:54:59 +0100 Subject: [PATCH] Utilisation gestionnaire contexte pour les E/S MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Geoffrey avait oublié de fermer le fichier en plus. Avec ça on est tranquille. --- S2/TP3/bataille_navale.py | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/S2/TP3/bataille_navale.py b/S2/TP3/bataille_navale.py index 9fbde73..e1c4d4c 100755 --- a/S2/TP3/bataille_navale.py +++ b/S2/TP3/bataille_navale.py @@ -101,19 +101,18 @@ def lire_donnees(num_descr): nature2 : taille2 ... """ + # with s'occupe de fermer automatiquement le fichier ouvert, c'est un gestionnaire de contexte. Il ferme le fichier à la fin du bloc, si une exception est levée ou si on rencontre un break/return + with open('jeu%s.txt' % num_descr, 'r') as fichier: + dimensions = fichier.readline().split(':') + largeur, hauteur = int(dimensions[0].strip()), int(dimensions[1].strip()) - fichier = open('jeu%s.txt' % num_descr) + navires = list() - dimensions = fichier.readline().split(':') - largeur, hauteur = int(dimensions[0].strip()), int(dimensions[1].strip()) + for ligne in fichier: + couple = ligne.split(':') + navires.append((couple[0].strip(), int(couple[1].strip()))) - navires = list() - - for ligne in fichier: - couple = ligne.split(':') - navires.append((couple[0].strip(), int(couple[1].strip()))) - - return (largeur, hauteur, navires) + return (largeur, hauteur, navires) # test OK # print(lire_donnees('2')) @@ -125,7 +124,7 @@ def lire_donnees(num_descr): # # Sauvegarde du bilan -# q1 +# Question 1 # print(datetime.today()) # 2015-02-10 11:25:48.324981 @@ -147,11 +146,8 @@ def sauver_result(nom, jeu, nbre): date = str(datetime.today()) - fichierScores = open(FICHIER_RESULT, 'a') - - fichierScores.write('%s:%s:%s:%s\n' % (nom, jeu, nbre, date)) - - fichierScores.close() + with open(FICHIER_RESULT, 'a') as fichierScores: + fichierScores.write('%s:%s:%s:%s\n' % (nom, jeu, nbre, date)) # sauver_result ('giouog', 2, 125) # sauver_result ('nom', 52, 12)