2017-06-19 54 views
2

默认情况下open用666八进制许可写入文件:-rw-rw-rw-。我想知道是否有办法让open创建执行位设置的文件。举例来说,如果我的推测系统的umask值是0000,然后用open写的任何文件将与权限-rw-RW-RW-写:我在寻找有没有一种方法可以在没有os.chmod的* nix系统下使用Python创建可执行文件?

$ umask 
0000 

>>> open("aaa", "w")

$ ls -l aaa 
-rw-rw-rw- 1 Kuser Kuser 0 Jun 19 08:44 aaa 

为了将open的默认权限值设置为777八进制,我可以直接编写可执行文件,而不需要os.chmod。或者通常有一种方法可以在Python中实现这一点?可能使用os模块的低级文件处理工具? touch默认情况下,大多数编辑器都使用666八进制权限模式。

我无法获得执行位为touch命令创建的文件设置的文件,touch默认情况下使用666。

注意:这只是一个人为问题。

回答

3

open接受一个返回文件描述符的参数opener; os.open接受一种模式,默认为0o777

import os 

with open("aaa", "w", opener=os.open) as f: 
    ⋮ 
相关问题