Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== Manipulation du système de fichiers avec Python ====== ==== Manipulation sur les chemins ==== === Concaténer des chemins === <code python> import os save_folder_repo = os.path.join(save_folder, name) </code> === Obtenir le chemin du dossier d'un fichier === <code python> import os filepath = "/a/b/c.txt" os.path.dirname(filepath) # "/a/b" </code> === Obtenir le dossier courant === Le dossier d’exécution du script: <code python> import os os.getcwd() </code> === Obtenir le chemin absolu === <code python> import os os.path.abspath("mydir/myfile.txt") </code> Le dossier du script qui s'exécute: <code python> import os os.path.dirname(os.path.abspath(__file__)) </code> ==== Vérifier si un dossier ou fichier existe ==== [[https://stackoverflow.com/questions/82831/how-do-i-check-whether-a-file-exists-without-exceptions|Source]] <code python> import os os.path.isdir(save_folder_repo) # ou os.path.exists(folder) # ou pour les fichiers : os.path.isfile(filename) </code> ==== Créer un dossier ==== <code python> import os os.makedirs(folder) </code> ==== Lister les fichiers d'un dossier ==== [[https://stackoverflow.com/questions/3207219/how-do-i-list-all-files-of-a-directory|Source]] <code python> 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))] </code> === Récursivement dans les sous-dossiers === [[https://docs.python.org/fr/3.6/library/glob.html]] <code python> import glob print(glob.glob('**/*', recursive=True)) </code> ==== Copier un dossier et son contenu ==== <code python> import shutil shutil.copytree(src, dest) </code> ==== Supprimer un dossier et son contenu ==== <code python> import shutil shutil.rmtree(path) </code> ==== Supprimer un fichier ==== <code python> import os os.remove(filepath) </code> ==== 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]] <code python> import os print(os.path.splitext("/path/to/some/file.txt")[0]) </code> ==== Fichiers temporaires ==== Utilise l'objet ''NamedTemporaryFile'' du module ''tempfile'' ([[https://stackoverflow.com/questions/44381249/treat-a-string-as-a-file-in-python|source]]) : <code python> from tempfile import NamedTemporaryFile f = NamedTemporaryFile(mode="w", delete=False) f.write("Toto") f.close() print(f"Written in {f.name}) </code> python/filesystem.txt Dernière modification : 2024/03/27 10:23de phsw