Python

barbara_aigle

Manipulation de fichiers

Modes d'ouverture des fichiers
r          ouvre un fichier en lecture seule (le pointeur est situé en début de fichier)
r+        ouvre un fichier en lecture/écriture (le pointeur est situé en début de fichier)
a         ouvre un fichier en écriture seule (le pointeur est situé en fin de fichier)
a+       ouvre un fichier en lecture/écriture (le pointeur est situé en fin de fichier)
w        ouvre un fichier en écriture seule (le contenu existant est écrasé)
w+      ouvre un fichier en lecture écriture (le contenu existant est écrasé)

A ces modes on peut spécifier la nature du fichier à ouvrir. Exemple :
r ou rt : ouvre un fichier texte en lecture seule
rb : ouvre un fichier binaire en lecture seule

Ouvrir un fichier

# 1ère méthode
nomFic = 'monfichier.txt'
modeFic = 'r'
encodeFic = 'utf8'
f = open(nomFic, modeFic, encoding=encodeFic)
print('le fichier est ouvert'
f.close()
print('le fichier est fermé')

# 2ième méthode
with open(nomFic, modeFic, encoding=encodeFic) as f:
    print('le fichier est ouvert')
print('le fichier est fermé')

# cette méthode oblige à fermer le fichier explicitement








# cette méthode ferme le fichier implicitement

Naviguer dans un fichier

f.tell() renvoie la position courante du curseur dans l'objet fichier f
f.seek(offset, [whence]) repositionne le curseur dans l'objet fichier f
    offset : nombre de positions du pointeur à déplacer dans le fichier
    whence : spécifie la position
        0 = à partir du début du fichier (par défaut)
        1 = à partir de la position actuelle du curseur
        2 = depuis la fin du fichier

with open(nomFic, modeFic, encoding=encodeFic) as f:
     print('position initiale du curseur :', f.tell())
     print('lecture des 5 premiers caractères :', f.read(5))
     print('nouvelle position du curseur :', f.tell())
     f.seek(0,0)
     print('le curseur est repositionné en début de fichier :', f.tell())

Ecrire dans un fichier

with open(nomFic, modeFic, encoding=encodeFic) as f:
     f.write('Pierre\n')
     f.write('Luc\n')
     print('Yves', file=f)


# le retour à la ligne doit être ajouté manuellement

# le retour à la ligne est ajouté automatiquement

Lire dans un fichier

f.read() lit un fichier dans sa totalité
f.read(nbcar) lit un fichier en partie
f.readline() lit un fichier ligne par ligne
f.readlines() lit toutes les lignes d'un fichier et retourne le résultat dans une liste

# f.read()
with open(nomFic, modeFic, encoding=encodeFic) as f:
    print(f.read())

# f.read(nbcar)
with open(nomFic, modeFic, encoding=encodeFic) as f:
    print(f.read(5))

# f.readline()
with open(nomFic, modeFic, encoding=encodeFic) as f:
    ligneLue = f.readline()
    while ligneLue:
        print(ligneLue)
        ligneLue = f.readline()

# f.readlines()
with open(nomFic, modeFic, encoding=encodeFic) as f:
    contenu = f.readlines()
    print(contenu)



# retourne le contenu du fichier



# retourne les 5 premiers caractères du fichier



# lit le fichier ligne par ligne






# retourne le contenu du fichier dans une liste

Supprimer un fichier

import os

if os.path.exists(nomFic):
    os.remove(nomFic)
else:
    print('Le fichier', nomFic, ’n\'existe pas.')

# librairie fournissant les fonctionnalités liées au système d’exploitation

# on teste si le fichier existe
# on supprime le fichier

Gérer les répertoires

import os

repCourant = os.getcwd()

repTravail = input('Choisir le répertoire (' + repCourant + '): ')
if repTravail == '':
     repTravail = repCourant
os.chdir(repTravail)
print('Répertoire choisi :', os.getcwd())

repAsupprimer = repCourant + '/bidon'
print('Répertoire à supprimer :', repAsupprimer)
delRep = input('Voulez-vous supprimer le répertoire ? ')
if delRep == 'o' or delRep == 'O':
    os.rmdir(repAsupprimer)

# librairie fournissant les fonctionnalités liées au système d’exploitation

# récupère le répertoire courant




# change de répertoire






# supprime un répertoire

Manipuler des valeurs numériques

import pickle

nom = 'Pierre'
age = 59
taille = 1.72
malade = True
pathos = ['Diabète', 'Acné', ['Hypertension']]

nomFic = 'monfichier.bin'
modeFic = 'wb'

with open(nomFic, modeFic) as f:
    pickle.dump(nom, f)
    pickle.dump(age, f)
    pickle.dump(taille, f)
    pickle.dump(malade, f)
    pickle.dump(pathos, f)

modeFic = 'rb'
with open(nomFic, modeFic) as f:
    nom = pickle.load(f)
    age = pickle.load(f)
    taille = pickle.load(f)
    malade = pickle.load(f)
    pathos = pickle.load(f)
    print(nom, type(nom))
    print(age, type(age))
    print(taille, type(taille))
    print(malade, type(malade))
    print(pathos, type(pathos))

# librairie permettant d’enregistrer des données en conservant leur type

# données à écrire





# fichier en sortie


# ouvre un fichier en écriture en mode binaire
# les données sont converties en flux d'octets (sérialisation)






# ouvre un fichier lecture en mode binaire
# le flux d'octets est converti en objets (désérialisation)
# chaque objet est restitué avec son type

(c) BS 2025 - tous droits réservés
Contactez-nous