2017-06-19 52 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: 
    ⋮ 
相關問題