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)

但是,我得到这个错误:

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)

希望对你有所帮助。

关于python - 更改 Python 文件系统中的文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33261630/

相关文章:

python - sqlalchemy 存在用于查询

python - 我是否有办法在不破坏 python 代码缩进的情况下安排多个文字行进行显示?

python - 如何在 python 控制台中实现 bash 的竖线运算符?

python - 如何从图形对象显示 matplotlib 图

python - 原始浮点编码

python - 如何使用dask dataframe进行降维?

python - 如何访问模板缓存? - Django

python - 如何解决 Odoo 中的动态域问题?

python - Py_initialize/Py_Finalize 不能与 numpy 一起工作两次

python - 将图像模型与相似图像相关联