Python os.chmod() 方法



Python os.chmod() 方法将路径的模式更改为指定的数字模式。模式可以取以下值之一或它们的按位或组合 -

  • stat.S_ISUID - 设置用户 ID 以执行。

  • stat.S_ISGID - 设置组 ID 以执行。

  • stat.S_ENFMT - 强制记录锁定。

  • stat.S_ISVTX - 执行后保存文本图像。

  • stat.S_IREAD - 由所有者读取。

  • stat.S_IWRITE - 由所有者写入。

  • stat.S_IEXEC - 由所有者执行。

  • stat.S_IRWXU - 由所有者读取、写入和执行。

  • stat.S_IRUSR - 由所有者读取。

  • stat.S_IWUSR - 由所有者写入。

  • stat.S_IXUSR - 由所有者执行。

  • stat.S_IRWXG - 由组读取、写入和执行。

  • stat.S_IRGRP - 由组读取。

  • stat.S_IWGRP - 由组写入。

  • stat.S_IXGRP - 由组执行。

  • stat.S_IRWXO - 由其他人读取、写入和执行。

  • stat.S_IROTH - 由其他人读取。

  • stat.S_IWOTH - 由其他人写入。

  • stat.S_IXOTH - 由其他人执行。

语法

以下是Python os.chmod() 方法的语法 -

os.chmod(path, mode);

参数

  • path - 这是要设置模式的路径。

  • mode - 这可以取上述值之一或它们的按位或组合。

返回值

此方法不返回值。

示例 1

以下示例显示了 Python os.chmod() 方法的用法。在这里,我们首先将文件设置为仅由组执行,方法是将 stat.S_IXGRP 作为模式参数传递给该方法。然后,我们将 stat.S_IWOTH 作为模式参数传递给该方法。这指定只有其他人才能写入该文件。

import os, sys, stat
# Assuming /tmp/foo.txt exists, Set a file execute by the group.
os.chmod("/tmp/foo.txt", stat.S_IXGRP)
# Set a file write by others.
os.chmod("/tmp/foo.txt", stat.S_IWOTH)
print ("Changed mode successfully!!")

当我们运行上述程序时,它会产生以下结果 -

Changed mode successfully!!

示例 2

在这里,我们首先将文件设置为仅由组写入。这是通过将 stat.S_IWGRP 作为模式参数传递给该方法来完成的。然后,我们将 stat.S_IXGRP 作为模式参数传递给该方法。这指定只有组才能执行该文件。

# importing the libraries
import os
import sys
import stat
# Setting the given file written by the group.
os.chmod("Code.txt", stat.S_IWGRP)
print("This file can only be written by the group")
# Setting the given file executed by the group.
os.chmod("Code.txt", stat.S_IXGRP)
print("Now the file can only be executed by the group.")

在执行上述代码时,我们得到以下输出 -

This file can only be written by the group
Now the file can only be executed by the group.

示例 3

在这里,当我们使用 os.chmod() 方法时,我们在设置权限之前编写了 0o。它表示八进制整数。文件权限设置为 755,这意味着所有者可以读取、写入和搜索;其他人和组只能在文件中搜索。

import os
file = "code.txt"
os.chmod(file, 0o755)
stat = os.stat(file)
mode = oct(stat.st_mode)[-4:]
print('The mode is:',mode)

以下是上述代码的输出 -

The mode is: 0666
os_file_methods.htm
广告