- À propos de Path.stat()
- Obtenir les informations d'un fichier avec Path.stat()
- Obtenir la taille d'un fichier avec st_size
- Obtenir la date de dernière modification avec st_mtime
- Obtenir la date du dernier accès avec st_atime
- Obtenir les informations de création avec st_ctime
- Afficher les dates dans un format lisible
- Obtenir les permissions et autres informations
- Gérer les erreurs avec Path.stat()
- À retenir
1. À propos de Path.stat()
Le module pathlib permet de manipuler les fichiers, les dossiers et leurs chemins avec une approche orientée objet. La méthode Path.stat() permet d'obtenir différentes informations fournies par le système de fichiers sur un fichier ou un dossier.
Elle permet notamment d'obtenir la taille d'un fichier, ses différentes dates, son mode, son numéro d'inode et d'autres informations dépendant du système d'exploitation.
Le programme suivant crée un objet Path représentant le fichier cours.txt, puis utilise stat() pour récupérer ses informations.
1 2 3 4 5 6 | from pathlib import Path fichier = Path("cours.txt") infos = fichier.stat() print(infos) |
Sortie possible :
1 | os.stat_result(st_mode=33206, st_ino=281474976710900, st_dev=1713037173, st_nlink=1, st_uid=0, st_gid=0, st_size=1250, st_atime=1789981200, st_mtime=1789977600, st_ctime=1789977600) |
Les valeurs obtenues peuvent varier selon le système d'exploitation, le système de fichiers et le fichier analysé.
2. Obtenir les informations d'un fichier avec Path.stat()
La méthode stat() retourne un objet contenant plusieurs attributs. Il n'est donc pas nécessaire d'afficher toutes les informations simultanément : nous pouvons accéder individuellement à chaque valeur.
Le programme suivant récupère quelques-unes des principales informations disponibles avec Path.stat().
1 2 3 4 5 6 7 8 9 | from pathlib import Path fichier = Path("cours.txt") infos = fichier.stat() print("Taille :", infos.st_size) print("Dernier accès :", infos.st_atime) print("Dernière modification :", infos.st_mtime) print("Informations de création/changement :", infos.st_ctime) |
Sortie possible :
1 2 3 4 | Taille : 1250 Dernier accès : 1789981200.0 Dernière modification : 1789977600.0 Informations de création/changement : 1789977600.0 |
Les attributs st_atime, st_mtime et st_ctime sont généralement exprimés sous forme de timestamps, c'est-à-dire un nombre de secondes servant à représenter une date et une heure.
3. Obtenir la taille d'un fichier avec st_size
L'attribut st_size permet d'obtenir la taille d'un fichier en octets. Il s'agit de l'une des informations les plus couramment utilisées avec Path.stat().
Le programme suivant affiche la taille du fichier cours.txt en octets.
1 2 3 4 5 6 | from pathlib import Path fichier = Path("cours.txt") taille = fichier.stat().st_size print("Taille :", taille, "octets") |
Sortie possible :
1 | Taille : 1250 octets |
Pour obtenir une valeur plus lisible lorsqu'un fichier est volumineux, nous pouvons convertir sa taille en kilooctets en divisant le nombre d'octets par 1024.
1 2 3 4 5 6 7 | from pathlib import Path fichier = Path("cours.pdf") taille_octets = fichier.stat().st_size taille_ko = taille_octets / 1024 print("Taille :", round(taille_ko, 2), "Ko") |
Sortie possible :
1 | Taille : 245.73 Ko |
De la même manière, nous pouvons convertir la taille en mégaoctets en divisant par 1024 × 1024.
1 2 3 4 5 6 | from pathlib import Path fichier = Path("video.mp4") taille = fichier.stat().st_size / (1024 * 1024) print("Taille :", round(taille, 2), "Mo") |
Sortie possible :
1 | Taille : 18.42 Mo |
4. Obtenir la date de dernière modification avec st_mtime
L'attribut st_mtime correspond à la date et à l'heure de la dernière modification du contenu du fichier. Sa valeur est retournée sous forme de timestamp.
Le programme suivant récupère directement cette valeur.
1 2 3 4 5 6 | from pathlib import Path fichier = Path("cours.txt") date_modification = fichier.stat().st_mtime print(date_modification) |
Sortie possible :
1 | 1789977600.0 |
Cette valeur est utile pour effectuer des comparaisons, mais elle n'est pas très lisible directement. Nous pouvons la convertir en date avec le module datetime.
1 2 3 4 5 6 7 8 | from pathlib import Path from datetime import datetime fichier = Path("cours.txt") timestamp = fichier.stat().st_mtime date = datetime.fromtimestamp(timestamp) print(date) |
Sortie possible :
1 | 2026-09-21 16:00:00 |
5. Obtenir la date du dernier accès avec st_atime
L'attribut st_atime fournit le timestamp associé au dernier accès au fichier tel qu'il est enregistré par le système de fichiers.
Le programme suivant récupère cette information puis la transforme en date avec datetime.fromtimestamp().
1 2 3 4 5 6 7 8 | from pathlib import Path from datetime import datetime fichier = Path("cours.txt") timestamp = fichier.stat().st_atime date = datetime.fromtimestamp(timestamp) print("Dernier accès :", date) |
Sortie possible :
1 | Dernier accès : 2026-09-21 17:00:00 |
Il faut toutefois savoir que la mise à jour de st_atime dépend du système d'exploitation, du système de fichiers et de ses options de montage. Cette valeur n'est donc pas nécessairement actualisée après chaque lecture du fichier.
6. Obtenir les informations de création avec st_ctime
L'attribut st_ctime doit être interprété avec prudence car sa signification dépend du système d'exploitation. Sous Windows, il correspond généralement à la date de création du fichier. Sur de nombreux systèmes Unix, il correspond au dernier changement des métadonnées du fichier et non à sa date de création.
Le programme suivant affiche la valeur de st_ctime sous forme de date lisible.
1 2 3 4 5 6 7 8 | from pathlib import Path from datetime import datetime fichier = Path("cours.txt") timestamp = fichier.stat().st_ctime date = datetime.fromtimestamp(timestamp) print("st_ctime :", date) |
Sortie possible :
1 | st_ctime : 2026-09-21 16:00:00 |
Il ne faut donc pas présenter systématiquement st_ctime comme la date de création d'un fichier dans un programme destiné à fonctionner sur plusieurs systèmes.
7. Afficher les dates dans un format lisible
La fonction datetime.fromtimestamp() permet de convertir les timestamps retournés par stat() en objets représentant des dates. La méthode strftime() permet ensuite de choisir précisément leur format d'affichage.
Le programme suivant affiche la date de dernière modification sous la forme jour/mois/année heure:minute:seconde.
1 2 3 4 5 6 7 8 | from pathlib import Path from datetime import datetime fichier = Path("cours.txt") timestamp = fichier.stat().st_mtime date = datetime.fromtimestamp(timestamp) print(date.strftime("%d/%m/%Y %H:%M:%S")) |
Sortie possible :
1 | 21/09/2026 16:00:00 |
Nous pouvons ainsi afficher simultanément les principales dates associées au fichier.
1 2 3 4 5 6 7 8 9 10 11 12 13 | from pathlib import Path from datetime import datetime fichier = Path("cours.txt") infos = fichier.stat() acces = datetime.fromtimestamp(infos.st_atime) modification = datetime.fromtimestamp(infos.st_mtime) changement = datetime.fromtimestamp(infos.st_ctime) print("Accès :", acces.strftime("%d/%m/%Y %H:%M:%S")) print("Modification :", modification.strftime("%d/%m/%Y %H:%M:%S")) print("st_ctime :", changement.strftime("%d/%m/%Y %H:%M:%S")) |
Sortie possible :
1 2 3 | Accès : 21/09/2026 17:00:00 Modification : 21/09/2026 16:00:00 st_ctime : 21/09/2026 16:00:00 |
8. Obtenir les permissions et autres informations
L'objet retourné par Path.stat() contient d'autres informations sur le fichier. Parmi les principaux attributs, nous trouvons st_mode, st_ino, st_dev et st_nlink.
- st_mode : type de fichier et bits de permissions.
- st_ino : numéro d'inode ou identifiant fourni par le système de fichiers.
- st_dev : identifiant du périphérique contenant le fichier.
- st_nlink : nombre de liens physiques associés.
Le programme suivant affiche ces informations pour le fichier cours.txt.
1 2 3 4 5 6 7 8 9 | from pathlib import Path fichier = Path("cours.txt") infos = fichier.stat() print("Mode :", infos.st_mode) print("Inode :", infos.st_ino) print("Périphérique :", infos.st_dev) print("Nombre de liens :", infos.st_nlink) |
Sortie possible :
1 2 3 4 | Mode : 33206 Inode : 281474976710900 Périphérique : 1713037173 Nombre de liens : 1 |
Pour afficher les permissions sous une forme plus facile à interpréter, nous pouvons utiliser la fonction stat.filemode() du module stat.
1 2 3 4 5 6 7 | from pathlib import Path import stat fichier = Path("cours.txt") mode = fichier.stat().st_mode print(stat.filemode(mode)) |
Sortie possible :
1 | -rw-rw-rw- |
Le premier caractère indique ici le type d'élément et les caractères suivants représentent les différents bits de permissions. Leur interprétation pratique dépend également du système d'exploitation.
9. Gérer les erreurs avec Path.stat()
Si nous utilisons Path.stat() sur un chemin qui n'existe pas, Python déclenche généralement une exception FileNotFoundError. Nous pouvons vérifier l'existence du fichier avant d'obtenir ses informations.
Le programme suivant utilise is_file() avant d'appeler stat().
1 2 3 4 5 6 7 8 9 | from pathlib import Path fichier = Path("cours.txt") if fichier.is_file(): infos = fichier.stat() print("Taille :", infos.st_size, "octets") else: print("Le fichier n'existe pas.") |
Sortie possible :
1 | Taille : 1250 octets |
Nous pouvons également utiliser une structure try...except pour gérer les erreurs pouvant apparaître pendant l'appel à stat().
1 2 3 4 5 6 7 8 9 10 11 12 13 | from pathlib import Path fichier = Path("cours.txt") try: infos = fichier.stat() print("Taille :", infos.st_size, "octets") except FileNotFoundError: print("Le fichier n'existe pas.") except PermissionError: print("Permission refusée.") except OSError as erreur: print("Erreur système :", erreur) |
Sortie possible :
1 | Taille : 1250 octets |
10. À retenir
La méthode Path.stat() de la classe Path permet d'obtenir de nombreuses informations sur un fichier ou un dossier directement depuis le système de fichiers.
- Path.stat() retourne les informations associées à un chemin.
- st_size indique la taille du fichier en octets.
- st_mtime indique la date de dernière modification du contenu.
- st_atime correspond au dernier accès enregistré par le système de fichiers.
- st_ctime n'a pas la même signification sous Windows et sous Unix.
- datetime.fromtimestamp() permet de convertir un timestamp en date lisible.
- strftime() permet de choisir le format d'affichage d'une date.
- st_mode contient notamment les informations de type et de permissions.
- stat.filemode() permet de représenter les bits du mode sous une forme plus lisible.
- is_file() ou try...except permettent de gérer le cas d'un fichier inexistant.
Le programme suivant regroupe quelques-unes des informations les plus utiles concernant un fichier : son chemin, sa taille et sa date de dernière modification.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | from pathlib import Path from datetime import datetime fichier = Path("cours.txt") if fichier.is_file(): infos = fichier.stat() modification = datetime.fromtimestamp(infos.st_mtime) print("Fichier :", fichier.name) print("Taille :", infos.st_size, "octets") print("Modification :", modification.strftime("%d/%m/%Y %H:%M:%S")) else: print("Le fichier n'existe pas.") |
Sortie possible :
1 2 3 | Fichier : cours.txt Taille : 1250 octets Modification : 21/09/2026 16:00:00 |
Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


