Как получить владельца и группу папок с 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 функция.

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

Другие вопросы по тегам