Как получить владельца и группу папок с Python на машине с Linux?
Как я могу получить ID владельца и группы каталога, использующего Python под Linux?
6 ответов
Использование os.stat()
чтобы получить UID и GID файла. Затем используйте pwd.getpwuid()
а также grp.getgrgid()
чтобы получить имена пользователей и групп соответственно.
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
Начиная с Python 3.4.4, Path
класс pathlib
Модуль предоставляет хороший синтаксис для этого:
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())
Используйте os.stat:
>>> s = os.stat('.')
>>> s.st_uid
1000
>>> s.st_gid
1000
st_uid
это идентификатор пользователя владельца, st_gid
это идентификатор группы. См. Связанную документацию для другой информации, которая может быть получена через stat
,
Я склонен использовать os.stat:
Выполните системный вызов stat по заданному пути. Возвращаемое значение - это объект, атрибуты которого соответствуют членам структуры stat, а именно: st_mode (защитные биты),
st_ino
(номер индекса),st_dev
(Устройства),st_nlink
(количество жестких ссылок),st_uid
(идентификатор пользователя владельца),st_gid
(идентификатор группы владельца),st_size
(размер файла в байтах),st_atime
(время последнего доступа),st_mtime
(время последней модификации контента),st_ctime
(зависит от платформы; время последнего изменения метаданных в Unix или время создания в Windows)
Там есть пример по ссылке на os.stat
выше.
Если вы используете Linux, это намного проще. Установите дерево с помощью команды yum install tree. Затем выполните команду 'tree -a -u -g'