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

发布于 2024-07-21 08:47:33 字数 37 浏览 11 评论 0原文

如何在Linux下使用Python获取目录的所有者和组ID?

How can I get the owner and group IDs of a directory using Python under Linux?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

风铃鹿 2024-07-28 08:47:33

使用 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

Use os.stat() to get the uid and gid of the file. Then, use pwd.getpwuid() and grp.getgrgid() to get the user and group names respectively.

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
撧情箌佬 2024-07-28 08:47:33

从 Python 3.4.4 开始, 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())

Since Python 3.4.4, the Path class of pathlib module provides a nice syntax for this:

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())
与之呼应 2024-07-28 08:47:33

使用 os.stat

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

st_uid 是所有者的用户 ID,st_gid 是组 ID。 有关可通过 stat 获取的其他信息,请参阅链接文档。

Use os.stat:

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

st_uid is the user id of the owner, st_gid is the group id. See the linked documentation for other information that can be acuired through stat.

何处潇湘 2024-07-28 08:47:33

我倾向于使用 os.stat

在给定路径上执行 stat 系统调用。 返回值是一个对象,其属性对应于stat结构体的成员,即:st_mode(保护位)、st_ino(inode号)、st_dev(设备)、 st_nlink(硬链接数量)、st_uid(所有者的用户 ID)、st_gid(所有者的组 ID)st_size(文件大小,以字节为单位)、st_atime(最近访问时间)、st_mtime(最近内容修改时间) ), st_ctime (取决于平台;Unix 上最近元数据更改的时间,或 Windows 上的创建时间)

上面的 os.stat 链接中有一个示例。

I tend to use os.stat:

Perform a stat system call on the given path. The return value is an object whose attributes correspond to the members of the stat structure, namely: st_mode (protection bits), st_ino (inode number), st_dev (device), st_nlink (number of hard links), st_uid (user id of owner), st_gid (group id of owner), st_size (size of file, in bytes), st_atime (time of most recent access), st_mtime (time of most recent content modification), st_ctime (platform dependent; time of most recent metadata change on Unix, or the time of creation on Windows)

There's an example at the link to os.stat above.

情仇皆在手 2024-07-28 08:47:33

使用 os.stat 函数。

Use the os.stat function.

恍梦境° 2024-07-28 08:47:33

如果您使用 Linux,那就容易得多。
使用命令 yum install tr​​ee 安装树。 然后执行命令'tree -a -u -g'

If you are using Linux, it is much easier.
Install tree with the command yum install tree. Then execute the command 'tree -a -u -g'

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文