====== Manipulation du système de fichiers avec Python ====== ==== Manipulation sur les chemins ==== === Concaténer des chemins === import os save_folder_repo = os.path.join(save_folder, name) === Obtenir le chemin du dossier d'un fichier === import os filepath = "/a/b/c.txt" os.path.dirname(filepath) # "/a/b" === Obtenir le dossier courant === Le dossier d’exécution du script: import os os.getcwd() === Obtenir le chemin absolu === import os os.path.abspath("mydir/myfile.txt") Le dossier du script qui s'exécute: import os os.path.dirname(os.path.abspath(__file__)) ==== Vérifier si un dossier ou fichier existe ==== [[https://stackoverflow.com/questions/82831/how-do-i-check-whether-a-file-exists-without-exceptions|Source]] import os os.path.isdir(save_folder_repo) # ou os.path.exists(folder) # ou pour les fichiers : os.path.isfile(filename) ==== Créer un dossier ==== import os os.makedirs(folder) ==== Lister les fichiers d'un dossier ==== [[https://stackoverflow.com/questions/3207219/how-do-i-list-all-files-of-a-directory|Source]] import os mypath = "chemin/vers/dossier" onlyfiles = [os.path.join(mypath, f) for f in os.listdir(mypath) if os.path.isfile(os.path.join(mypath, f))] === Récursivement dans les sous-dossiers === [[https://docs.python.org/fr/3.6/library/glob.html]] import glob print(glob.glob('**/*', recursive=True)) ==== Copier un dossier et son contenu ==== import shutil shutil.copytree(src, dest) ==== Supprimer un dossier et son contenu ==== import shutil shutil.rmtree(path) ==== Supprimer un fichier ==== import os os.remove(filepath) ==== Enlever l'extension d'un nom de fichier ==== [[https://stackoverflow.com/questions/678236/how-to-get-the-filename-without-the-extension-from-a-path-in-python?rq=1|Source]] import os print(os.path.splitext("/path/to/some/file.txt")[0]) ==== Fichiers temporaires ==== Utilise l'objet ''NamedTemporaryFile'' du module ''tempfile'' ([[https://stackoverflow.com/questions/44381249/treat-a-string-as-a-file-in-python|source]]) : from tempfile import NamedTemporaryFile f = NamedTemporaryFile(mode="w", delete=False) f.write("Toto") f.close() print(f"Written in {f.name})