我想用Python创建一个目录,使用与shell相同的权限mkdir.
该标准Python文档说:
os.mkdir(路径[,模式])
使用数字模式模式创建名为path的目录.默认模式为0777(八进制).在某些系统上,模式被忽略.在使用它的地方,首先屏蔽当前的umask值.如果该目录已存在,则引发OSError.
我不想要默认0777权限,而是从父目录继承的权限.如果不查询父目录的权限,我可以这样做吗?
你已经是让你想与外壳的获得相同的权限mkdir.
使用shell mkdir:
对于每个目录操作数,mkdir实用程序应执行与IEEE Std 1003.1-2001的系统接口卷中定义的mkdir()函数等效的操作,并使用以下参数调用:
目录操作数用作路径参数.
S_IRWXU,S_IRWXG和S_IRWXO的按位包含OR的值用作模式参数.(如果指定了-m选项,则mode-argument参数会覆盖此默认值.)
或者,更可读(来自BSD手册页):
...使用由当前umask(2)修改的模式rwxrwxrwx(0777)按指定的顺序创建名为operands的目录.
Python的os.mkdir功能完全相同:
... [t]默认模式为0777 ...首先屏蔽当前的umask值.
实际上,Python 使用完全相同的参数调用shell文档中提到的完全相同的POSIX mkdir函数.该功能定义为:
新目录的文件权限位应从模式初始化.mode参数的这些文件权限位应由进程'文件创建掩码修改.
或者,更可读的是,来自FreeBSD/OS X联机帮助页:
使用mode指定的访问权限创建目录路径,并由调用进程的umask(2)限制.
如果您使用的是非POSIX平台(如Windows),则Python会尝试模拟POSIX行为,即使本机shell具有一个名称mkdir不同的命令.主要是因为主要的这样的shell是Windows,它具有mdmkdir的同义词,并且甚至没有记录权限的详细信息.
| 归档时间: |
|
| 查看次数: |
3939 次 |
| 最近记录: |