0% ont trouvé ce document utile (0 vote)
0 vues11 pages

Cours Pathlib Python - MD

pathlib doc

Transféré par

sxjunior47
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
0 vues11 pages

Cours Pathlib Python - MD

pathlib doc

Transféré par

sxjunior47
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours complet : pathlib en Python

1. Introduction
Avant pathlib , on manipulait les chemins de fichiers avec des chaînes de caractères et le
module [Link] :

python

import os
chemin = [Link]("dossier", "sous-dossier", "[Link]")

C'est fonctionnel mais peu lisible. Depuis Python 3.4, le module pathlib offre une
approche orientée objet, plus claire et plus puissante.

python

from pathlib import Path


chemin = Path("dossier") / "sous-dossier" / "[Link]"

2. Importer et créer un chemin


python

from pathlib import Path

# Chemin relatif
p = Path("dossier/[Link]")

# Chemin absolu
p = Path("/home/user/documents/[Link]")

# Répertoire courant
p = Path(".")

# Répertoire home de l'utilisateur


p = [Link]() # ex: /home/user
p = [Link]() # répertoire de travail actuel

3. Construire des chemins avec /


L'opérateur / permet de combiner des chemins de façon lisible :

python

from pathlib import Path

base = Path("/home/user")
fichier = base / "documents" / "[Link]"

print(fichier) # /home/user/documents/[Link]

C'est l'équivalent de [Link]() , mais beaucoup plus propre.


4. Informations sur un chemin

python

from pathlib import Path

p = Path("/home/user/documents/[Link]")

print([Link]) # [Link] (nom du fichier avec extension)


print([Link]) # notes (nom sans extension)
print([Link]) # .txt (extension)
print([Link]) # /home/user/documents (dossier parent)
print([Link]) # ('/', 'home', 'user', 'documents', '[Link]')

# Plusieurs extensions
p2 = Path("[Link]")
print([Link]) # .gz
print([Link]) # ['.tar', '.gz']

5. Vérifier l'existence et le type

python

from pathlib import Path

p = Path("/home/user/documents")

[Link]() # True si le chemin existe


p.is_file() # True si c'est un fichier
p.is_dir() # True si c'est un dossier
p.is_symlink() # True si c'est un lien symbolique
Exemple pratique :

python

p = Path("[Link]")

if [Link]():
print("Le fichier existe")
else:
print("Fichier introuvable")

6. Lire et écrire des fichiers


pathlib permet de lire et écrire des fichiers directement, sans open() :

python

from pathlib import Path

p = Path("[Link]")

# Écrire
p.write_text("Bonjour le monde")

# Lire
contenu = p.read_text()
print(contenu) # Bonjour le monde

# Lire en bytes (pour les fichiers binaires)


data = p.read_bytes()

# Écrire en bytes
p.write_bytes(b"\x00\x01\x02")
write_text() écrase le fichier s'il existe déjà.

Pour ajouter du contenu sans écraser :

python

with [Link]("a") as f:
[Link]("nouvelle ligne\n")

7. Créer des dossiers

python

from pathlib import Path

# Créer un dossier
Path("nouveau_dossier").mkdir()

# Créer avec les parents (équivalent de mkdir -p)


Path("a/b/c").mkdir(parents=True, exist_ok=True)
# parents=True → crée les dossiers parents si nécessaire
# exist_ok=True → ne génère pas d'erreur si le dossier existe déjà

8. Lister le contenu d'un dossier


python

from pathlib import Path

dossier = Path("/home/user/documents")

# Lister tous les éléments (fichiers + dossiers)


for element in [Link]():
print(element)

# Filtrer uniquement les fichiers


for element in [Link]():
if element.is_file():
print([Link])

9. Rechercher des fichiers avec glob()


glob() permet de chercher des fichiers avec des patterns (motifs) :

python

from pathlib import Path

dossier = Path(".")

# Tous les fichiers .txt dans le dossier courant


for f in [Link]("*.txt"):
print(f)

# Tous les fichiers .py dans tous les sous-dossiers (récursif)


for f in [Link]("*.py"):
print(f)
Pattern Signification

*.txt Tous les fichiers .txt

**/*.py Tous les .py dans tous les sous-dossiers

data_*.csv Fichiers commençant par data_

10. Renommer, déplacer, supprimer

python

from pathlib import Path

p = Path("ancien_nom.txt")

# Renommer / déplacer
[Link]("nouveau_nom.txt")
[Link]("/autre/dossier/[Link]")

# Supprimer un fichier
[Link]()

# Supprimer un dossier vide


Path("dossier_vide").rmdir()

# Supprimer un dossier et tout son contenu


import shutil
[Link]("dossier_avec_contenu")
11. Obtenir le chemin absolu

python

from pathlib import Path

p = Path("[Link]")
print([Link]()) # /home/user/projet/[Link] (chemin absolu complet)

12. Comparaison : [Link] vs pathlib

Tâche [Link] pathlib

Joindre des chemins [Link](a, b) Path(a) / b

Nom du fichier [Link](p) [Link]

Dossier parent [Link](p) [Link]

Extension [Link](p)[1] [Link]

Existe ? [Link](p) [Link]()

Est un fichier ? [Link](p) p.is_file()

Est un dossier ? [Link](p) p.is_dir()

Chemin absolu [Link](p) [Link]()

13. Exemple complet


python

from pathlib import Path

# Dossier de travail
base = Path("projet")
[Link](exist_ok=True)

# Créer des fichiers


(base / "[Link]").write_text("Mes notes")
(base / "[Link]").write_text("debug=True")

# Lister tous les fichiers .txt


print("Fichiers trouvés :")
for f in [Link]("*.txt"):
print(f" - {[Link]} ({[Link]().st_size} octets)")

# Lire un fichier
contenu = (base / "[Link]").read_text()
print(f"\nContenu de [Link] : {contenu}")

# Renommer
(base / "[Link]").rename(base / "notes_v2.txt")

# Vérifier
print(f"\[Link] existe : {(base / '[Link]').exists()}")
print(f"notes_v2.txt existe : {(base / 'notes_v2.txt').exists()}")

14. Résumé des méthodes principales


Méthode / Attribut Description

Path("chemin") Créer un objet Path

p / "sous" Joindre des chemins

[Link] Nom du fichier avec extension

[Link] Nom sans extension

[Link] Extension ( .txt )

[Link] Dossier parent

[Link]() Vérifie l'existence

p.is_file() Vérifie si c'est un fichier

p.is_dir() Vérifie si c'est un dossier

p.read_text() Lire le contenu texte

p.write_text() Écrire du texte

[Link]() Créer un dossier

[Link]() Lister un dossier

[Link]("*.txt") Chercher des fichiers

[Link]("*.py") Chercher récursivement

[Link]() Renommer / déplacer

[Link]() Supprimer un fichier

[Link]() Chemin absolu complet


[Link]() Répertoire home

[Link]() Répertoire courant

Fin du cours — pathlib en Python

Vous aimerez peut-être aussi