在Python文件系统中更改文件权限

在Python文件系统中更改文件权限,python,Python,我想更改python文件系统(pyfilesystem)中文件的权限 以下是我的代码: fslocal = fs.osfs.OSFS(localdir, create=True, thread_synchronize=True) fslocal.setcontents('/file1', b'This is file 1') 现在我想更改文件1的文件权限。我正在为此使用os.chmod os.chmod(localdir + '/file1', stat.S_IWOTH) 但是,我得到了这个

我想更改python文件系统(pyfilesystem)中文件的权限

以下是我的代码:

fslocal = fs.osfs.OSFS(localdir, create=True, thread_synchronize=True)
fslocal.setcontents('/file1', b'This is file 1')
现在我想更改文件1的文件权限。我正在为此使用os.chmod

os.chmod(localdir + '/file1', stat.S_IWOTH)
但是,我得到了这个错误:

Traceback (most recent call last):
File "/Users/user/.conda/envs/scram/lib/python3.4/site-packages/fs/errors.py", line 257, in wrapper

return func(self,*args,**kwds)

File "/Users/user/.conda/envs/scram/lib/python3.4/site-packages/fs/osfs/__init__.py", line 251, in listdir

listing = os.listdir(sys_path)

PermissionError: [Errno 13] Permission denied: '/Users/user/Documents/tests/function/arwan/localfs/file1
你能告诉我是否有可能做这件事以及如何做吗


谢谢。

一个问题是,您调用chmod似乎是为了添加一个权限位。事实上,您正在设置所有权限位,因此该调用尝试清除除您要设置的权限位之外的所有权限位。假设您在Unix系统上,您可能还需要设置用户位和组位,包括读取位和执行位

您可以执行以下操作:

st = os.stat(path)
old_mode = st.st_mode
new_mode = old_mode | stat.S_IWOTH
os.chmod(path, new_mode)

希望这将对您有所帮助。

尝试使用sudo启动此功能。我认为问题不在于sudo命令的权限。相反,它是一种权限,因为我们将文件放在文件系统中。无论如何,谢谢你的回答。