====== File System - Fichiers et dossiers ====== ===== Dossier en cours ===== import os dossier = os.getcwd() Changer de dossier : import os # Linux os.chdir('/tmp') # Windows os.chdir('c:\\data\\prgpython\\test') ===== Script en cours ===== import os print("current path : ", os.path.realpath(__file__)) print("current file : ", os.path.basename(__file__)) print("current folder: ", os.path.dirname(__file__)) Résultat : FIXME :!: :!: :!: Il semblerait que ça ne fonctionne plus ??? current path : C:\data\prgpython\test\test.py current file : test.py current folder: C:\data\prgpython\test ===== Test si dossier ou fichier existe ===== import os if os.path.isdir('/home/marc/test'): ... if os.path.isfile('/home/marc/test/doc.txt'): .... ===== Date et heure d'un fichier ===== Source: [[https://www.geeksforgeeks.org/how-to-get-file-creation-and-modification-date-or-time-in-python/]] Renvoie une valeur float représentant le nombre de secondes écoulées depuis l'origine (qui dépend du système, sous Unix c'est le 1er janvier 1970) : import os file_path = "c:\\chemin\\vers\\mon\\fichier" time_created = os.path.getctime(file_path) time_modified = os.path.getmtime(file_path) Pour transformer ces valeurs en quelque chose de lisible, utiliser les fonctions **time.ctime()** puis **time.strptime()** et **time.strftime()** : import os, time time_modified = time.strptime(time.ctime(os.path.getmtime(file_path))) print(time.strftime("%d/%m/%Y, %H:%M:%S", time_modified)) print(time.strftime("%Y%m%d-%H%M%S", time_modified)) ===== Découpage de chemin ===== Extraire le nom du fichier : import os.path chemin = "/home/marc/coucou/test.txt" fichier = os.path.basename(chemin) 'test.txt' Extraire le chemin du dossier import os.path chemin = "/home/marc/coucou/test.txt" dossier = os.path.dirname(chemin) '/home/marc/coucou' ===== Opérations sur les dossiers ===== Créer une suite de dossiers d'un coup import os os.makedirs("/home/marc/nouveau/dossier", mode=0o755, exist_ok=True) ===== Lister les fichiers d'un dossier ===== Lister les fichiers d'un dossier avec leur date/heure : import os path = './data' list_of_files = os.listdir(path) for file in list_of_files: print(file, os.path.getctime(os.path.join(path, file))) Filtrer selon une extension : for file in list_of_files: if file.endswith(".txt"): print(os.path.join(path, file)) ===== Suppression de fichiers ===== Supprimer le plus vieux fichier d'un dossier import os path = './log' file_names = os.listdir(path) full_paths = [path+"/{0}".format(x) for x in file_names] oldest_file = min(full_paths, key=os.path.getctime) os.remove(oldest_file)