4

我知道如何使用以下代码实现 chmod u+w:

st = os.stat(dest_file)
os.chmod(dest_file, st.st_mode | stat.S_IWUSR)

但是uw呢?

4

1 回答 1

6
st = os.stat(dest_file)
os.chmod(dest_file, st.st_mode & ~stat.S_IWUSR)

说明:~是按位 NOT 运算符,因此按位 AND with~stat.S_IWUSR清除st.st_mode.

用虚值来说明:

stat.S_IWUSR                    00001000
~stat.S_IWUSR                   11110111
s.st_mode                       00101001
s.st_mode & ~stat.S_IWUSR       00100001 
于 2013-06-15T13:33:22.840 回答