有没有办法在没有os.chmod for * nix系统的情况下用Python创建可执行文件?

时间:2017-06-19 18:01:28

标签: python unix umask

默认情况下open使用666八进制权限写入文件:-rw-rw-rw-。我想知道是否有办法让open创建执行位设置的文件。例如,如果假设我的系统的umask值为0000,则使用open编写的任何文件都将使用权限-rw-rw-rw-编写:

$ 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。

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

1 个答案:

答案 0 :(得分:3)

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

import os

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