TP : gestion des fichiers en python I Travail préparatoire 1

Lycée Victor Hugo MPSI-PCSI 2016-2017
TP : gestion des fichiers en python
I Travail préparatoire
On pourra se reporter au document de cours (ResumeFichiers.pdf) pour se remémorer
les syntaxes.
1 Se placer dans le bon répertoire de travail
En python, on utilise le slash comme séparateur dans les chemins et le concept de
répertoire de travail courant. Il est alors possible de préciser la position d’un fichier
par rapport à ce répertoire courant : on parle de chemin relatif.
Question 1 H
Importer le module os en écrivant import os, puis utiliser la fonction getcwd (sans
paramètre) pour obtenir le chemin du répertoire courant.
Quel est le type de son résultat ?
Pour changer le répertoire de travail courant, on utilise la fonction chdir du module os,
d’argument le nouveau chemin.
Question 2 H
Changer le répertoire de travail courant en /home/eleves/Téléchargements, puis
vérifier avec la fonction getcwd que le changement a bien été pris en compte.
2 Premiers essais
Télécharger les fichiers Renard.txt et Corbeau.txt
Script 3 H
Faire afficher (après l’avoir ouvert) le contenu du fichier Renard.txt en utilisant une
lecture globale (read) du fichier. On n’oubliera pas de refermer le descripteur de fichier.
Script 4 H
Faire afficher le contenu du fichier Corbeau.txt ligne après ligne à l’aide du descripteur.
On n’oubliera pas de refermer le descripteur de fichier.
Script 5 H
À l’aide de python, créer un nouveau fichier Fable.txt dans lequel on copiera le contenu
de Corbeau.txt
1
Lycée Victor Hugo MPSI-PCSI 2016-2017
Script 6 H
Modifier le fichier Fable.txt en lui ajoutant le contenu de Renard.txt
Script 7 H
En utilisant l’instruction readline (sans "s"), compter le nombre de lignes de la dernière
version du fichier Fable.txt
II Le championnat de foot
Télécharger le fichier ChampionsLigue1
Script 8 H
Parcourir le fichier ChampionsLigue1.txt et faire afficher pour chaque année une ligne
suivant le modèle suivant : En 2013, le champion fut Paris-SG.
Indication indispensable : les lignes du fichier contiennent diverses informations séparées
par des tabulations. On peut facilement récupérer ces différentes informations grâce à la
méthode split de la façon suivante :
details = ligne . split ( ’\t ’)
Si ligne est une chaîne de caractères, details est alors une liste de chaînes de caractères
qui contient les diverses informations qui étaient séparées par des tabulations.
Script 9 H
Créer un fichier TitresDeMonPrefere.txt et y écrire les années (à raison d’une année
par ligne) en lesquelles un club (à choisir : le préféré) a été champion de France ; en
parcourant le fichier ChampionsLigue1.txt.
III Jouons avec les nombres premiers
Dans le fichier TP16_1617.py est donnée une fonction qui rend la décomposition en
facteurs premiers d’un entier n>2, sous la forme d’une liste (cf. description ci-après).
decomp (n) :
""" Renvoie la liste des facteurs premiers de n >=2 , par ordre
croissant des facteurs premiers
decomp (1350) renvoie [2 ,3 ,3 ,3 ,5 ,5] car 1350=2 * 3**3 * 5**2 """
1 Fabrication de fichiers
Script 10 H
Créer le fichier NbFacteursPremiers.txt stockant pour chaque entier entre 2 à 10000
inclus le nombre de facteurs premiers (avec répétition), i.e. la somme des puissances des
facteurs premiers.
Par exemple pour 8192 = 213 on aura 13, pour 9216 = 210 ×32on aura 12.
On écrit une ligne par entier dans le format 8192:13.
Script 11 H
2
Lycée Victor Hugo MPSI-PCSI 2016-2017
Créer le fichier Decomposition.txt stockant la décomposition des entiers de 2 à 10000
inclus. On stocke la décomposition sous la forme suivante, à raison d’une décomposition
par ligne dans le fichier.
2:2
3:3
4:2,2
...
8192:2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2
...
9216:2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,3 ,3
...
2 Exploitation des fichiers créés
Script 12 H
Créer un fichier NbPremier.txt, par lecture et exploitation de NbFacteursPremiers
.txt, dans lequel on stocke les nombres premiers entre 0 et 10000 inclus. Les nombres
premiers seront écrits sur une seule ligne, séparés par des virgules.
Le début du fichier est donc :
2 ,3 ,5 ,7 ,11 ,13 ,...
Les plus avancés (ou téméraires) pourront réfléchir à une façon de ne pas avoir la virgule
inutile à la fin...
Script 13 H
De même, créer un fichier Premier.txt donnant le caractère premier ou non sous la
forme entier tabulation True/False, à raison d’un entier (entre 2 et 10000 inclus)
par ligne :
2 True
3 True
4 False
5 True
...
Script 14 H
Créer un fichier DecompositionCompacte.txt, dans lequel on écrira sous forme com-
pacte les décompositions des entiers compris entre 0 et 10000 inclus.
Pour n=pa1
1× · · · p
ak
kon écrira n:p1, a1,· · · , pk, ak.
Le début du fichier sera donc :
2:2,1
3:3,1
4:2,2
...
8192:2,13
...
9216:2 ,10 ,3 ,2
3
Lycée Victor Hugo MPSI-PCSI 2016-2017
Script 15 H
Écrire à l’aide d’une recherche dans le fichier NbPremier.txt une fonction déterminant
si un nombre passé en argument est premier. Ce n’est pas une méthode pertinente, mais
l’objectif est de réfléchir aux typages utilisés.
IV Jouons à être le service informatique d’un concours
Vous avez à votre disposition un fichier Admissible.txt avec les quatre champs sui-
vants : numéro de candidat, Nom (en majuscules) et prénom (Initiale en majuscule, reste
en minuscules), résultat à l’écrit du concours, puis série d’oral pour les admissibles. Ces
quatre champs sont séparés par des tabulations, le nom et le prénom par un simple espace.
Script 16 H
Compter, à l’aide de python bien sûr, le nombre total de candidats et le nombre de
candidats admissibles.
Script 17 H
Créer quatre nouveaux fichiers texte contenant la liste des candidats de chaque série
d’oral (uniquement nom et prénom).
Script 18 H
Créer un fichier de candidats où ces derniers sont classés par ordre de numéro d’inscrip-
tion.
4
1 / 4 100%

TP : gestion des fichiers en python I Travail préparatoire 1

La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !