• Aucun résultat trouvé

BCPST ´Ecriture et lecture dans un fichier 2020-2021

N/A
N/A
Protected

Academic year: 2022

Partager "BCPST ´Ecriture et lecture dans un fichier 2020-2021"

Copied!
3
0
0

Texte intégral

(1)

BCPST Ecriture et lecture dans un fichier´ 2020-2021

Exercice 1 : Lecture dans un fichier. . . . (1) T´el´echarger le fichier texte fable.txt. Lire ce fichier avec un ´editeur de texte commenote-

pad++ ou mˆeme avecPyzo.

(2) Ouvrir un fichier PythonavecPyzo que l’on nommera lecture script.py. Enregistrer ce fichier dans le mˆeme repertoire que le fichier texte.

(3) ´Ecrire dans votre fichier les lignes suivantes.

with open(" fable . txt ", "r", encoding ="utf−8") as fichier texte : texte = fichier texte . read ()

a. Afficher le type de la variable texte (on utiliseratype) b. Afficher le contenu de la variable texte

c. Proposer une fonction qui compte le nombre de e dans votre texte.

d. Comment peut-on v´erifier simplement que le mot renardest dans votre texte ? (4) a. Modifier read par readline

b. Afficher toutes les lignes du texte.

c. Afficher la premi`ere lettre de chaque ligne.

(5) a. Modifier readline par readlines.

b. Afficher la premi`ere lettre de chaque ligne.

Conclusion : Il existe 3 fa¸cons pour lire dans un fichier, il faut savoir les utiliser et bien choisir la fa¸con en fonction du contexte

Exercice 2 : ´Ecriture dans un fichier. . . . (1) Dans le mˆeme r´epertoire, cr´eer le fichierecriture script.pyet recopier les lignes suivantes :

with open(" texte2 . txt ", "w", encoding ="utf−8") as fichierTexte : fichierTexte . write (" test d ’ ecriture ")

(2) V´erifier que le r´esultat attendu est obtenu.

(3) Proposer un script permettant d’´ecrire 100 nombres al´eatoires avec un nombre par ligne (Le caract`ere "\n" permet d’aller `a la ligne).

(4) Proposer un script permettant d’´ecrire la fable `a l’envers.

(5) Proposer un script permettant d’´ecrire la fable en rempla¸cant les e par des o. (on pourra voir la fonction replace)

(6) Lors de l’ouverture du fichier, modifier "w" par "a". Que se passe-t-il ?

On se donne mainteant le fichier lacnoir.csv qui donne la quantit´e de pollens de quelques esp`eces en fonction de la profondeur dans une tourbe.

On va manipuler automatiquement ce fichier.

Exercice 3 : Lecture d’un fichier CSV. . . . (1) T´el´echarger le fichier lacnoir.csv.

Les fichiers CSV ont une structure bien d´efinie que l’on peut observer en ouvrant le fichier avec gedit puis `a l’aide de OpenOffice.

En Python, il est facile d’utiliser cette structure pour travailler le fichier. On peut importer la biblioth`equeCSV

(2)

BCPST Ecriture et lecture dans un fichier, Page 2 sur´ ?? 2020-2021 (2) On se donne la fonction :

def d i c t f i c h i e r c s v ( nomFichier ):

with open( nomFichier , ’r ’) as fichierTexte :

listeCSV = list( csv . DictReader ( fichierTexte )) return listeCSV

On obtient alors une liste de dictionnaire, on va analyser cette fonction.

a. Analyser cette fonction et tester l`a avec lacnoir.csv.

b. Comment obtenir le nombre de grains de pollen d’un noisetier `a une profondeur de 100 m`etre.

(3) Proposer une fonctiontauxqui prend en arguments une profondeur et une esp`ece et renvoie le nombre de pollens.

(4) Proposer une fonctiontaux maxqui prend en argument une profondeur et renvoie l’esp`ece ayant le plus grand nombre de pollens `a cette profondeur.

Exercice 4 : ´Ecriture d’un fichier CSV. . . . On peut aussi ´ecrire facilement un fichier CSV `a partir d’un dictionnaire en utilisant la fonction suivante :

def e c r i r e f i c h i e r c s v ( dictionnaire , nomFichierSortie ):

# L ’ e n t e t e du f i c h i e r e s t composee d e s c l e s du d i c t i o n n a i r e de c h a q u e e l e m e n t de l a l i s t e . entete = dictionnaire [0]. keys ()

# On e c r i t e n s u i t e c e t t e l i s t e d a n s l e f i c h i e r c s v with open( nomFichierSortie , ’w ’) as ListeAEcrire :

# f i c h i e r L i s t e e s t l e c u r s e u r d a n s n o t r e f i c h i e r . fichierListe = csv . DictWriter ( ListeAEcrire , entete )

# On e c r i t l ’ e n t e t e :

fichierListe . writeheader ()

# P u i s on e c r i t l ’ e n s e m b l e d e s l i g n e s fichierListe . writerows ( dictionnaire )

(1) Faire fonctionner cette fonction pour recopier `a l’identique le fichierlacnoir.csv dans lac- noir2.csv

(2) Proposer une fonctionprofondeur espece superieur qui prend en arguments un nom de fichier `a lire, un nom de fichier `a ´ecrire, une esp`ece et un nombre et n’´ecrit dans le fichier que les profondeurs sup´erieurs au nombre entr´e en argument.

Attention, toutes les entr´ees lues dans un fichier sont du type string. On devra utiliser des conversions vers des entiers avant de comparer des nombres.

Exercice 5 : Rajouter une ligne. . . . Pour lire et ´ecrire `a la fois dans un fichier, on utilise la commande :

with open( no m fi ch ie r en tr e , "r+")

Toute ligne ´ecrite se rajoute `a la fin.

(1) ´Ecrire une fonction moyennequi prend un fichier `a lire et rajoute, `a la derni`ere ligne dans le mˆeme format que le fichier, la moyenne du nombre de pollens par esp`ece.

(3)

BCPST Ecriture et lecture dans un fichier, Page 3 sur´ ?? 2020-2021 (2) ´Ecrire une fonctionmediane qui prend un fichier `a lire et rajoute, `a la derni`ere ligne dans

le mˆeme format que le fichier, la m´ediane du nombre de pollens par esp`ece.

Exercice 6 : Construire un protocole. . . . On se donne le fichier prefer climat coul.png qui donne les esp`eces en fonction des climats.

Proposer un protocole qui permet de dater les changements climatiques (en terme d’hygrom´etrie et de temp´eratures) et de d´eterminer le type de climat `a chaque fois.

Références

Documents relatifs

Si vous êtes seul et que vous voulez commencer une conversation, allez tout d’abord dans le sous-forum dans lequel vous souhaitez poster.. Prenons un exemple, vous voulez

- réciter la comptine en déplaçant un élément de la collection à chaque fois qu’un mot-nombre est prononcé, -réciter la comptine numérique en pointant mentalement un élément

Participer aux projets ayant trait à la création du département de pathologie Bichat-Beaujon : Participer ponctuellement à l’activité technique sur le site de Beaujon selon

Pourquoi y a-t-il un tel tapage médiatique afin de faire peur aux gens, alors que cette "grippette, n'est pas aussi mortelle que la grippe saisonnière?. Pourquoi

(4) Proposer une fonction profondeur espece superieur qui prend en arguments un nom de fichier ` a lire, un nom de fichier ` a ´ ecrire, une esp` ece et un nombre et n’´ ecrit dans

On se donne mainteant le fichier lacnoir.csv qui donne la quantit´ e de pollens de quelques esp` eces en fonction de la profondeur dans une tourbeb. On va manipuler automatiquement

(2) ´ Ecrire la fonction lien genres serie(idSerie) qui prend en argument l’id d’une s´ erie et renvoie une liste contenant les id des genres de cette s´ erie. (3) ´ Ecrire

On se donne maintenant le fichier lacnoir.csv qui donne la quantit´ e de pollens de quelques esp` eces en fonction de la profondeur dans une tourbeb. On va manipuler automatiquement