CDAT et le langage python
6 mars 2007 Lecture du fichier binaire a_entete.dat. #!/usr/bin/env python import Numeric as N f = open('a_entete.dat' 'rb').
Traduction de la notation algorithmique en langage Python
traduction de l'algorithme principal. Fichier nomapplication.py. Python Fichiers binaires : illisibles par l'homme mais pouvant.
Python au lycée - tome 1
Ce livre n'est donc ni un manuel complet de Python ni un cours d'informatique
Python Les flux
3 Les fichiers. Flux - v1.3 Python propose deux types séquences d'octets : ... BufferedRandom pour un fichier binaire ouvert en lecture/écriture.
La gestion des fichiers
31 déc. 2020 La représentation binaire (le type bytes) d'un objet Python est alors écrite dans un fichier. Il est possible de partager ces fichiers entre ...
Informatique en CPGE (2018-2019) Les fichiers 1 Gestion des fichiers
le répertoire courant est celui où est enregistré le fichier Python. write(n) et read(n) permettent d'écrire ou de lire n octets en mode binaire. Les.
Le calcul scientifique sous Python et Scilab
Le langage Python est un langage généraliste disposant de bibliothèques octets=mget(3
Trafic de données avec Python-pandas
des fichiers gérer une table de données et les types des variables
Exercices corrigés
Python 3. Exercices corrigés Affectez les données de ce tableau à un dictionnaire dico python de façon à ... Cours no 6 : « Modules et fichiers ».
cours-python.pdf
22 mars 2018 L'extension de fichier standard des scripts Python est .py. Pour exécuter votre script ... (comme un rapport de nombres binaires).
Ricco Rakotomalala http://ericuniv-lyon2fr/~ricco/cours/cours
>Ricco Rakotomalala http://eric univ-lyon2 fr/~ricco/cours/cours https://eric univ-lyon2 fr/ricco/cours/slides/PE - fichiers sous pyth · Fichier PDF
Comment lire un fichierpdf enpython ?
Dans ce tutoriel, nous allons lire un fichier PDF en Python. PyPDF2 est un module Python que nous pouvons utiliser pour extraire les informations d’un document PDF, fusionner des documents, diviser un document, recadrer des pages, crypter ou décrypter un fichier PDF, etc.
Comment lire un document en mode binaire ?
Nous ouvrons le document PDF en mode lecture binaire en utilisant open ('document_path.PDF', 'rb'). PDFFileReader () est utilisé pour créer un objet lecteur PDF pour lire le document. Nous pouvons extraire du texte des pages du document PDF en utilisant les méthodes getPage () et extractText ().
Comment ouvrir un fichier binaire ?
Pour ouvrir un fichier au format binaire, ajoutez " b " au paramètre mode. Par conséquent, le mode " rb " ouvre le fichier au format binaire pour la lecture, tandis que le mode " wb " ouvre le fichier au format binaire pour l’écriture. Contrairement aux fichiers en mode texte, les fichiers binaires ne sont pas lisibles par l’homme.
1R.R. ʹUniversité Lyon 2
Ricco Rakotomalala
2Fichiers ?
R.R. ʹUniversité Lyon 2
masse (non volatile, capacité plus importante que la mémoire vive)1.Organisation des données : structuré, les informations sont
alignées à la suite (ex. fichier texte) tableau ; accès séquentiel, lecture ou écriture pas à pas (ex. ligne par ligne dans un fichier texte) est un fichier texte (manipulable avec un éditeur de texte) mais qui obéità une organisation structurée
3FICHIER TEXTE
Accès séquentiel, non structuré
R.R. ʹUniversité Lyon 2
4Lecture en bloc avec read()
R.R. ʹUniversité Lyon 2
megane clio twingo safrane laguna vel satisFichier texte à lire :
"voiture.txt» # -*-coding: utf-*- #ouverture en lecture f= open("voitures.txt","r") #lecture s= f.read() #affichage print("** contenu de s **") print(s) print("** fin contenu **") #information sur s print("type de s : ",type(s)) print("longueur de s : ", len(s)) #fermeture f.close() type fichier stocké dans f le curseur de fichier est placé sur la première ligne close() ferme le fichier (et donc le déverrouille) sest de type "str», on se rend mieux compte en mode console: \nreprésente le caractère spécial "saut de ligne» (line feed), print(s)fonctionne correctement. 5Lecture en bloc avec readlines(avec "s»)
R.R. ʹUniversité Lyon 2
# -*-coding: utf-*- #ouverture en lecture f = open("voitures.txt","r") #lecture lst= f.readlines() #affichage print("** contenu de lst**") print(lst) print("** fin contenu **") #information sur lst print("type de s : ",type(lst)) print("longueur de s : ", len(lst)) #fermeture f.close()Le contenu du fichier est
stocké dans une liste, une ligne = un élément. Le caractère \n présent sur la dernière ligne de notre fichier exemple. 6 Remarque : saut de ligne ou pas sur la dernière ligne du fichierR.R. ʹUniversité Lyon 2
ou pas à la dernière ligne de notre fichier texte ?Ouvrir le fichier dans Notepad++
La ligne n°6 est la dernière ligne du fichier, pas de saut ligne après "velsatis» Il y a une ligne vide(la n°7) après "velsatis» 7 Lecture ligne par ligne avec readline(sans "s»)R.R. ʹUniversité Lyon 2
# -*-coding: utf-*- #ouverture en lecture f = open("voitures.txt","r") #lecture ligne itérativement whileTrue: s = f.readline() if (s != ""): print(s) else: break; #fermeture f.close() readline() lit la ligne courante et place le curseur sur la ligne suivante. la fonction renvoie la chaîne vide lorsque nous arrivons à la fin du blanche entre 2 véhicules, readline() pas une chaîne vide). Il y a une ligne vide entre chaque véhicule parce que le caractère "\n» est toujours là, print() le prend en compte, il faudrait faire print(s,end="") ] 8R.R. ʹUniversité Lyon 2
# -*-coding: utf-*- #ouverture en lecture f= open("voitures.txt","r") #lecture ligne itérativement forsinf: print(s,len(s)) #fermeture f.close() concise ʹpour une lecture ligne à ligne.Le caractère \nest présent toujours,
noter la longueur de la chaîne (+1 pour toutes sauf la dernière) 9R.R. ʹUniversité Lyon 2
# -*-coding: utf-*- #ouverture en écriture f = open("moto.txt","w") #écriture f.write("honda") f.write("yamaha") f.write("ducati") #fermeture f.close() fichier référencée par f Il manque les sauts de ligne pour distinguer chaque moto # -*-coding: utf-*- #ouverture en écriture f = open("moto.txt","w") #écriture f.write("honda\n") f.write("yamaha\n") f.write("ducati") #fermeture f.close() Nous insérons le caractère saut de ligne "\n» après chaque moto, sauf la dernière 10R.R. ʹUniversité Lyon 2
Nous devons quand même insérer le
caractère "\n» pour que le saut de ligne soit effectif dans le fichier. # -*-coding: utf-*- #ouverture en écriture f = open("moto.txt","w") #liste lst= ["honda\n","yamaha\n","ducati"] #écriture f.writelines(lst) #fermeture f.close() 11Ajout dans un fichier texte
R.R. ʹUniversité Lyon 2
un fichier en mode ajout caractères attention toujours au saut de ligne une ouverture en mode lecture / écriture positionner sur telle ou telle ligne pour y modifier ou insérer des informations est compliqué. # -*-coding: utf-*- #ouverture en ajout f = open("moto.txt","a") #ajouter un saut de ligne f.write("\n") #écriture f.write("laverda") #fermeture f.close() 12FICHIER BINAIRE
R.R. ʹUniversité Lyon 2
13Accès en mode binaire (1/2)
R.R. ʹUniversité Lyon 2
Python peut traiter un fichier en mode binaire, il peut lire octet par octet, ou megane clio twingo safrane laguna vel satis voitures.txt #ouverture en lecture f = open("voitures.txt","rb") #lire un octet a = f.read(1) print(a) #type de a arrayde bytes print(type(a)) #transformer en chaîne de caractères s = a.decode("utf-8") print(s) print(type(s)) #lire une 2nde fois a = f.read(1) print(a) #pos. du curseur print("position : ",f.tell()) option "rb» pour open() pour lecture etmode binaire après un read(), le curseur de fichier se place sur avec tell() [début du fichier = indice 0] bpour indiquer tableau de bytes 14Accès en mode binaire (2/2)
R.R. ʹUniversité Lyon 2
#positionner le curseur f.seek(0,0) #lire un bloc d'octets a = f.read(6) print(a) print("longueur = ",len(a)) #aller à l'octet n5 #à partir du début f.seek(5,0) a = f.read(1) print(a) #lire le dernier octet f.seek(-1,2) a = f.read(1) print(a) #fermeture f.close() seek() permet de positionner le curseur, le 1er paramètre est la position, le 2ndest la référence : 0 à partir du début du fichier, 2 à partir de la fin, 1 à partir de la position courante noter le seek(-1,2)avec un indice négatif, comme pour les listes ou les tuples megane clio twingo safrane laguna vel satis voitures.txt 15FORMAT CSV
Fichier structuré
R.R. ʹUniversité Lyon 2
16Format CSV
R.R. ʹUniversité Lyon 2
Un fichier CSV(Comma-separatedvalues) est un fichier texte (!) avec une structureExcelNotepad++
(2) ";" est utilisé comme séparateur de colonnes (paramétrable, ça peut être tabulation "\t" aussi souvent) ; (3) le point décimal dépend de la langue (problème colonnes souvent (nom des variables en statistique). 17Lecture du format CSV ʹStructure de liste
R.R. ʹUniversité Lyon 2
#ouverture en lecture f= open("personnes.csv","r") #importation du module csv importcsv #lecture utilisation du parseur csv lecteur= csv.reader(f,delimiter=";") #affichage itération sur chaque ligne forligne inlecteur: print(ligne) #fermeture du fichier f.close()Chaque ligne
est une liste.Remarques :
1.La première ligne est une observation comme une autre.
2.Toutes les valeurs sont considérées comme chaîne de caractères [une
conversion automatique des chiffres est possible, mais elle ne fonctionne pas si le point décimal est ",» -mieux vaut une conversion explicite avec float() ]Paramétrage du séparateur de
18 Lecture du format CSV ʹStructure de dictionnaireR.R. ʹUniversité Lyon 2
#ouverture en lecture f= open("personnes.csv","r") #importation du module csv importcsv #lecture lecteur= csv.DictReader(f,delimiter=";") #affichage forligne inlecteur: print(ligne) #fermeture f.close()Chaque ligne est
un DictRemarques :
1.La première ligne est reconnue comme nom de champs
2.On utilise les clés pour accéder aux valeurs. Pour un accès indicé, une solution
possible serait de convertir la collection des valeurs [ ligne.values() ] en liste. 19FORMAT JSON
Fichier structuré
R.R. ʹUniversité Lyon 2
20Format JSON
R.R. ʹUniversité Lyon 2
Un fichier JSON(JavaScript Object Notation) est un fichier texte (!) mais avec une ordonnées de valeur. #début définition classPersonne: """Classe Personne""" #constructeur def__init__(self): #lister les champs self.nom = "" self.age = 0 self.salaire= 0.0 #fin constructeur #fin définitionA faire :
(A)Comment sauvegarder un objet de type Personne dans un fichier ? (B)Comment sauvegarder une collection (liste) de personnes.Exemples
21Le plus simple : passer par le type dictionnaire
R.R. ʹUniversité Lyon 2
Remarque :Passer par un dictionnaire est un artifice destiné à nous faciliter la vie. De manière plus sérialisablec.-à-d. quand on fait dump() dessus, les informations sont correctement inscrites dans le fichier. A voir en M2 mon cours de C#. # -*-coding: utf-*- #import Personne import ModulePersonneasMP #import module json importjson #saisie personne p = MP.Personne() p.saisie() #sauvegarde f = open("personne.json","w") #dictionnaire d = {"Nom":p.nom,"Age":p.age,"Salaire":p.salaire} #sauver au format json json.dump(d,f) #fermer le fichier f.close(); dictionnaire référencé par d dictionnaire dans le fichier référencé par f noter le format de fichier jsonavec les accolades {} pour délimiter un enregistrement 22R.R. ʹUniversité Lyon 2
# -*-coding: utf-*- #import Personne import ModulePersonneasMP #import module json importjson #saisie personne p = MP.Personne() p.saisie() #sauvegarde f = open("personne.json","w") #sauver au format json json.dump(p.__dict__,f) #!!! #fermer le fichier f.close(); le code est grandement simplifié Idée :Tous les objets Python (instance de classe) les champs de la classe et leurs valeurs pour 23R.R. ʹUniversité Lyon 2
# -*-coding: utf-*- #import Personne import ModulePersonneasMP #import module json importjson #ouverture fichier f = open("personne.json","r") #chargement d = json.load(f) print(d) print(type(d)) #transf. en Personne p = MP.Personne() p.nom = d["Nom"] p.age = d["Age"] p.salaire= d["Salaire"] #affichage p.affichage() #fermeture f.close(); le fichier est ouvert en lecture maintenant nous créons une instance de Personne, et nous recopions les informations ici utilisation de la méthode affichage() 24R.R. ʹUniversité Lyon 2
Objectif :Sauvegarder un ensemble de personnes
dans un fichier JSON. Idée :Utiliser une double collection. Une liste (list) dans laquelle sont insérés des dictionnaires (dict). #import Personne importModulePersonneasMP #import module json importjson #liste vide liste = [] #nb. de pers ? n = int(input("Nb de pers : ")) #saisie liste for i in range(0,n): a = MP.Personne() a.saisie() liste.append(a) #sauvegarde f = open("personnes.json","w") #créer une liste temporaire tmp= [] #pour chaque personne forp inliste: #créer un dictionnaire d = {} d["Nom"] = p.nom d["Age"] = p.age d["Salaire"] = p.salaire #ajouter dans liste tmp tmp.append(d) #sauvegarde de la liste tmp json.dump(tmp,f) #fermer le fichier f.close(); délimiter la liste et chaque enregistrement effectuer un dump() sur la liste principale tmprevient à sauver chaque dictionnaire (Personne) qui le compose.Un exemple
25R.R. ʹUniversité Lyon 2
#import Personne importModulePersonneasMP #import module json importjson #ouverture fichier f = open("personnes.json","r") #chargement tmp= json.load(f) #conv. en liste de personnes liste = [] fordintmp: #créer une personne p = MP.Personne() p.nom = d["Nom"] p.age = d["Age"] p.salaire= d["Salaire"] #affichage p.affichage() #l'ajouter dans la liste liste.append(p) print("Nb personnes : ",len(liste)) #fermeture f.close(); Objectif :Charger un ensemble de personnes à partir Idée :Convertir les dicten objet de type PersonneEffectuer un load() permet de charger la liste de
dictionnaires, référencée par tmp. Une instance de Personne est créée pour chaque élément de type dict, les informations sont recopiées. 26FORMAT XML
Fichier structuré
R.R. ʹUniversité Lyon 2
27Format XML
R.R. ʹUniversité Lyon 2
Un fichier XML(Extensible MarkupLanguage) est un fichier texte (!) permettant de décrire des documents. Le principe de construction est simple et immuable (organisation hiérarchique, balises, attributs), mais la structure est évolutiveStructure pour
un objetStructure pour
28Créer un fichier XML avec un objet
R.R. ʹUniversité Lyon 2
#import Personne importModulePersonneasMP #import module xml importxml.etree.ElementTreeasET #saisie personne p = MP.Personne() p.saisie() #écriture racine root= ET.Element("Personne") #écriture des élements item_nom= ET.SubElement(root,"Nom") item_nom.text= p.nom item_age= ET.SubElement(root,"Age") item_age.text= str(p.age) item_sal= ET.SubElement(root,"Salaire") item_sal.text= str(p.salaire) #sauvegarde fichier tree= ET.ElementTree(root)quotesdbs_dbs21.pdfusesText_27[PDF] fichier classe 6ème année primaire
[PDF] fichier clients excel
[PDF] fichier d'écriture ce1
[PDF] fichier d'écriture ce2
[PDF] fichier des écritures comptables bofip
[PDF] fichier des écritures comptables questions réponses
[PDF] fichier des guichets domiciliataires
[PDF] fichier des personnes politiquement exposées
[PDF] fichier drh gratuit
[PDF] fichier écriture cp
[PDF] fichier email agences immobilieres
[PDF] fichier email drh
[PDF] fichier ept priips
[PDF] fichier excel achat vente