【发布时间】:2021-02-10 04:21:12
【问题描述】:
我尝试在 Windows 中的 os.chmod 中设置 Python 中的文件访问权限。
我可以成功删除写访问权限,但不能成功删除读访问权限:
>>> import os
>>> import stat
>>> from pathlib import Path
>>> toto = Path("toto.txt")
>>> toto.write_text("Hello")
5
>>> toto.read_text()
'Hello'
>>> os.chmod(toto, toto.stat().st_mode & ~stat.S_IWUSR)
>>> toto.write_text("Hello")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\python37-32\lib\pathlib.py", line 1208, in write_text
with self.open(mode='w', encoding=encoding, errors=errors) as f:
File "c:\python37-32\lib\pathlib.py", line 1176, in open
opener=self._opener)
File "c:\python37-32\lib\pathlib.py", line 1030, in _opener
return self._accessor.open(self, flags, mode)
PermissionError: [Errno 13] Permission denied: 'toto.txt'
[Errno 13] Permission denied: 'toto.txt'
>>> os.chmod(toto, stat.S_IRWXU)
>>> toto.write_text("Hello")
5
>>> os.chmod(toto, toto.stat().st_mode & ~stat.S_IRUSR)
>>> toto.read_text()
'Hello'
最后一行应该引发了错误,因为该文件应该没有被读取的权限。
如何解决这个问题?
【问题讨论】: