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 中实现这一点?可能使用模块中的低级文件处理工具ostouch并且大多数编辑器默认使用 666 八进制权限模式。

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

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

4

1 回答 1

4

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

import os

with open("aaa", "w", opener=os.open) as f:
    ⋮
于 2017-06-19T18:05:38.793 回答