我想用Python改变文件模式。
os模块有三个功能,它们在功能上似乎是等价的:
os.chmodos.fchmodos.lchmod这三个版本有什么不同?
发布于 2020-01-20 10:23:10
chmod用于更改路径指定的文件的文件权限。
fchmod用于更改由文件描述符指定的文件的文件权限。
lchmod类似于chmod(),但不遵循符号链接。
您可以在手册页中阅读更多内容。
发布于 2020-01-20 11:26:28
所有三种方法都用于更改文件的模式。
- 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。通过影响符号链接文件而不是目标。
发布于 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手册页面,以深入了解细节。例如,lchmod和chmod之间的主要区别是:lchmod不遵循符号链接。
https://stackoverflow.com/questions/59820957
复制相似问题