← retour aux snippets

stat: tester le type de fichier et extraire le mode

Déterminer si un chemin est un fichier/dir/lien et lire les bits.

python filesystem #stat#filetype#mode

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.