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

Is there a way to create executable files in Python without os.chmod for *nix systems?

默认情况下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。

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

open accepts an opener argument that returns a file descriptor; os.open接受一种模式,默认为0o777

import os

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