有没有一种方法可以在*nix系统中创建Python可执行文件,而不需要使用os.chmod?

3

默认情况下,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个回答

4

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

import os

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接