我希望用Python改变文件模式。
os模块有三个功能看起来相同的函数:
os.chmod
os.fchmod
os.lchmod
这三个版本之间有什么区别?
我希望用Python改变文件模式。
os模块有三个功能看起来相同的函数:
os.chmod
os.fchmod
os.lchmod
这三个版本之间有什么区别?
这三种方法被用来改变文件的模式。
- 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时,会对符号链接文件产生影响而不是目标文件。
os.fchmod(fd, mode)
等同于os.chmod(fd, mode)
(其中fd
是文件描述符,一个非负整数,用作访问文件或其他输入/输出资源(如管道或网络套接字)的抽象指示器(句柄))。建议您阅读https://www.freebsd.org/cgi/man.cgi?query=lchmod上的BSD手册以深入了解详情。例如,lchmod
和chmod
之间的主要区别在于:lchmod
不会遵循符号链接。