Table des matières

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

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

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

Source

import os
print(os.path.splitext("/path/to/some/file.txt")[0])

Fichiers temporaires

Utilise l'objet NamedTemporaryFile du module tempfile (source) :

from tempfile import NamedTemporaryFile
 
f = NamedTemporaryFile(mode="w", delete=False)
f.write("Toto")
f.close()
print(f"Written in {f.name})