繁体   English   中英

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

[英]Change File Permission in Python File System

我想在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)

希望这会对你有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM