Как получить владельца и группу папок с Python на машине с Linux? - PullRequest
15 голосов
/ 30 мая 2009

Как я могу получить ID владельца и группы каталога, использующего Python под Linux?

Ответы [ 5 ]

31 голосов
/ 30 мая 2009

Используйте 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
2 голосов
/ 11 апреля 2016

Начиная с 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())
0 голосов
/ 30 мая 2009

Использование os.stat :

>>> s = os.stat('.')
>>> s.st_uid
1000
>>> s.st_gid
1000

st_uid - идентификатор пользователя владельца, st_gid - идентификатор группы. См. Связанную документацию для другой информации, которая может быть получена через stat.

0 голосов
/ 30 мая 2009

Используйте функцию os.stat.

0 голосов
/ 30 мая 2009

Я склонен использовать os.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 выше.

...