Comment puis-je obtenir les ID de propriétaire et de groupe d'un répertoire en utilisant Python sous Linux?Comment obtenir le propriétaire et le groupe d'un dossier avec Python sur une machine Linux?
Répondre
Utilisez os.stat()
pour obtenir l'ID et le fichier du fichier. Ensuite, utilisez pwd.getpwuid()
et grp.getgrgid()
pour obtenir les noms d'utilisateur et de groupe respectivement.
import grp
import pwd
import os
stat_info = os.stat('/path')
uid = stat_info.st_uid
gid = stat_info.st_gid
print uid, gid
user = pwd.getpwuid(uid)[0]
group = grp.getgrgid(gid)[0]
print user, group
J'ai tendance à utiliser os.stat:
Effectuer un appel système stat sur le chemin donné. La valeur renvoyée est un objet dont les attributs correspondent aux membres de la structure statistique, à savoir: st_mode (bits de protection),
st_ino
(numéro d'inode),st_dev
(périphérique),st_nlink
(nombre de liens physiques),st_uid
(ID utilisateur de propriétaire),st_gid
(numéro de groupe du propriétaire),st_size
(taille du fichier, en octets),st_atime
(heure de l'accès le plus récent),st_mtime
(moment de la dernière modification du contenu),st_ctime
(dépend de la plate-forme, heure du plus récent) changement de métadonnées sur Unix ou l'heure de création sous Windows)
Il existe un exemple au lien os.stat
ci-dessus.
Utilisez la fonction os.stat
.
Utilisation os.stat:
>>> s = os.stat('.')
>>> s.st_uid
1000
>>> s.st_gid
1000
st_uid
est l'ID utilisateur du propriétaire, st_gid
est l'identifiant du groupe. Voir la documentation liée pour d'autres informations qui peuvent être acquises via stat
.
Depuis Python 3.4.4, la classe Path
du module pathlib
fournit une belle syntaxe pour ceci:
from pathlib import Path
whatever = Path("relative/or/absolute/path/to_whatever")
if whatever.exists():
print("Owner: %s" % whatever.owner())
print("Group: %s" % whatever.group())