objectif
Déterminer si un chemin est un fichier/dir/lien et lire les bits.
code minimal
import os, stat, tempfile, pathlib
with tempfile.TemporaryDirectory() as tmp:
p = pathlib.Path(tmp)/"f"; p.write_text("x")
st = os.lstat(p)
print(stat.S_ISREG(st.st_mode)) # attendu: True
utilisation
import os, stat, tempfile, pathlib
with tempfile.TemporaryDirectory() as tmp:
d = pathlib.Path(tmp)/"d"; d.mkdir()
print(stat.S_ISDIR(os.lstat(d).st_mode))
variante(s) utile(s)
import stat
print(isinstance(stat.S_IFREG, int))
notes
- lstat ne suit pas les symlinks (contrairement à stat).
- S_IMODE(st.st_mode) pour les permissions uniquement.