os.chmod、os.fchmod和os.lchmod之间的区别

3

我希望用Python改变文件模式。

os模块有三个功能看起来相同的函数:

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

这三个版本之间有什么区别?

3个回答

4

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

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

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

您可以在手册页面中了解更多信息。


2

这三种方法被用来改变文件的模式。

 - chmod: os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True)

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


- fchmod: os.fchmod(fd, mode)

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


- lchmod: os.lchmod(path, mode)

这与chmod()函数的作用相同,但是当参数follow_symlinks=True改为follow_symlinks=False时,会对符号链接文件产生影响而不是目标文件。


1
根据文档,自Python 3.3以来,os.fchmod(fd, mode)等同于os.chmod(fd, mode)(其中fd是文件描述符,一个非负整数,用作访问文件或其他输入/输出资源(如管道或网络套接字)的抽象指示器(句柄))。建议您阅读https://www.freebsd.org/cgi/man.cgi?query=lchmod上的BSD手册以深入了解详情。例如,lchmodchmod之间的主要区别在于:lchmod不会遵循符号链接。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接