如何在python中设置文件所有者?

Posted

技术标签:

【中文标题】如何在python中设置文件所有者?【英文标题】:How to set a files owner in python? 【发布时间】:2012-06-04 20:06:50 【问题描述】:

首先可以用python设置文件的所有者吗? 如果是这样,您如何使用 python 设置文件的所有者?

【问题讨论】:

大概这是在 UNIX(类似)操作系统上?另外,whathaveyoutried.com. 【参考方案1】:
os.chown(path, uid, gid)

http://docs.python.org/library/os.html

uid和gid可以从字符串中检索到

import pwd
import grp
import os

uid = pwd.getpwnam("nobody").pw_uid
gid = grp.getgrnam("nogroup").gr_gid

参考:How to change the user and group permissions for a directory, by name?

【讨论】:

os.chown 仅在 Unix 上可用。【参考方案2】:

旧的,但将来可能对那些希望在 Windows 中设置文件所有者的人有所帮助。

*我还没有找到一个纯粹的“pythonic”方法,这是替代方法:

Windows 提供了以下我们将利用的 takeown.exe 实用程序:

takeown /f folder_path /r /d Y('r' 用于递归地获取树中所有文件和文件夹的所有权,'d' 用于默认输入参数,允许获取所有文件\文件夹的所有权)。 更多文档:msdn docs

代码示例:

from subprocess import STDOUT, check_output
check_output(["takeown", "/f", path_, "/r", "/d", "Y"], stderr=STDOUT)

【讨论】:

takeown /d /y 仅适用于英语。如果您正在运行德语等,则“Y”选项不正确(德语中的 J 等)。这不是一种超级可靠的方法。 @JasonFloyd 哦,天哪。我不知道哪个是更糟糕的决定:使程序选项依赖于语言环境,或者使用 Windows 进行认真的开发。

以上是关于如何在python中设置文件所有者?的主要内容,如果未能解决你的问题,请参考以下文章

python - 如何在python中的旭日形图的所有层中设置每个类别的颜色?

如何在 python 文件中设置小部件的 ID?

如何根据数据类型在 python 中设置条件?

Docker:如何在 Centos 6.8 docker 文件中设置和使用 python 2.7

如何在 Windows 中设置文件夹权限?

如何使用 python 在 Maya 中设置目录?目前使用 PyQt4,但愿意接受任何建议