【发布时间】:2018-06-14 02:56:44
【问题描述】:
在 python 2.7 中,我将数据保存到路径,例如A/B/C/data.txt:
import os
file_path = 'A/B/C/data.txt'
# create directory A/B/C
dir_name = os.path.dirname(file_path)
if not os.path.exists(dir_name):
os.makedirs(dirp_name)
# save data to file
with open(file_path, 'w') as f:
json.dump(data, f)
# change file permission mode to be 0x666
os.chmod(file_path, 0666)
文件data.txt的权限模式已更改。但是,此代码不会更改路径上目录A/B/C 的权限模式。我也想设置目录的权限模式。
os.chmod('A', 0666)
os.chmod('A/B', 0666)
os.chmod('A/B/C', 0666)
有没有一种优雅的方式来做到这一点?
谢谢!
【问题讨论】:
-
使用
os.chmod。 -
如果问题是您的默认 umask,并且您想在整个进程范围内更改它而不是针对此目录,只需调用 umask。如果您希望在此目录中创建的文件比您的进程创建的其他文件更宽松,我认为没有任何方法可以像这样自动添加权限;您必须在打开文件后对其进行 fchmod。
-
查看
os.chmod()here的文档 -
os.chmod(file, mode) 将仅更改该特定文件的权限模式。但我想更改路径上所有目录的权限模式。
-
问题已被编辑。抱歉之前的描述不准确。