1. ホーム
  2. python

[解決済み] pythonの中で簡単な "chmod +x "を行うにはどうすればよいですか?

2022-04-28 11:44:22

質問

Pythonスクリプトの中から、実行可能なファイルを作成したいのですが。

import os
import stat
os.chmod('somefile', stat.S_IEXEC)

と表示されます。 os.chmod は、unix のようにパーミッションを「追加」するわけではありません。 chmod があります。最後の行をコメントアウトすると、ファイルにはfilemodeの -rw-r--r-- コメントアウトされていない場合、ファイルモードは ---x------ . どうすれば u+x のフラグを立て、残りのモードはそのままにするのですか?

解決方法は?

使用方法 os.stat() で現在のパーミッションを取得する場合は | を使ってビットをORし os.chmod() を使用して、更新されたパーミッションを設定します。

import os
import stat

st = os.stat('somefile')
os.chmod('somefile', st.st_mode | stat.S_IEXEC)