【发布时间】:2016-09-04 06:04:14
【问题描述】:
这是错误还是功能?
当我使用os.mkdir(与pathlib.Path.mkdir 同上)和显式模式创建目录时,创建的目录的权限不适合。如果我再次使用os.chmod 执行,它会起作用...
>>> import sys, os
>>> sys.version
'3.4.3 (default, Feb 27 2015, 18:13:37) \n[GCC 4.4.5]'
>>> os.mkdir('truite', mode=0o2770)
>>> oct(os.stat('truite').st_mode)
'0o40750'
>>> os.chmod('truite', 0o2770)
>>> oct(os.stat('truite').st_mode)
'0o42770'
因为我希望能够创建一个包含父母和模式 o2770 的目录,所以这里是代码(pth 是 pathlib.Path 对象):
def make_shared_dir(pth) :
if not pth.parent.is_dir() :
make_shared_dir(pth.parent)
if not pth.is_dir() :
pth.mkdir()
pth.chmod(0o2770)
【问题讨论】:
-
已确认使用 Ubuntu 14.04、Python 3.4.3。根据文档:在某些系统上,模式被忽略。
标签: python-3.x mkdir