如何在Linux机器上用Python获取文件夹的所有者和组?

27 投票
6 回答
31755 浏览
提问于 2025-04-15 11:55

我怎么能在Linux下用Python获取一个目录的拥有者和组的ID呢?

6 个回答

1

使用 os.stat

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

st_uid 是文件拥有者的用户 ID,st_gid 是文件所属的组 ID。想了解更多通过 stat 可以获取的信息,可以查看上面的文档。

13

从Python 3.4.4开始,pathlib模块中的Path类提供了一种很方便的写法来处理这个问题:

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())
47

使用 os.stat() 这个函数可以获取文件的用户ID(uid)和组ID(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

撰写回答