首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >os.chmod、os.fchmod和os.lchmod的差异

os.chmod、os.fchmod和os.lchmod的差异
EN

Stack Overflow用户
提问于 2020-01-20 10:07:20
回答 3查看 592关注 0票数 3

我想用Python改变文件模式。

os模块有三个功能,它们在功能上似乎是等价的:

  • os.chmod
  • os.fchmod
  • os.lchmod

这三个版本有什么不同?

EN

回答 3

Stack Overflow用户

发布于 2020-01-20 10:23:10

chmod用于更改路径指定的文件的文件权限。

fchmod用于更改由文件描述符指定的文件的文件权限。

lchmod类似于chmod(),但不遵循符号链接。

您可以在手册页中阅读更多内容。

票数 4
EN

Stack Overflow用户

发布于 2020-01-20 11:26:28

所有三种方法都用于更改文件的模式。

代码语言:javascript
复制
 - chmod: os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True)

默认情况下,chmod接受路径和数字模式,并更改文件权限。默认情况下,它遵循符号链接和文件。

代码语言:javascript
复制
- fchmod: os.fchmod(fd, mode)

您可以传递打开的文件描述符,而不是路径。

代码语言:javascript
复制
- lchmod: os.lchmod(path, mode)

这与chmod()相同,但是参数follow_symlinks=True更改为follow_symlinks=False。通过影响符号链接文件而不是目标。

票数 2
EN

Stack Overflow用户

发布于 2020-01-20 10:22:25

根据文档,os.fchmod(fd, mode)等同于os.chmod(fd, mode),因为Python3.3 (fd:文件描述符,一个非负整数,用作访问文件或其他输入/输出资源(如管道或网络套接字)的抽象指示符(句柄)。

我建议您阅读https://www.freebsd.org/cgi/man.cgi?query=lchmod的BSD手册页面,以深入了解细节。例如,lchmodchmod之间的主要区别是:lchmod不遵循符号链接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59820957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档