質問:
stat関数を効率的に使用して意味のあるファイル権限 (ユーザー、グループ、その他) を取得するにはどうすればよいですか。
詳細:
次のようにファイルのアクセス許可を照会しています。
statInfo = os.stat
permissions = stat.S_IMODE ( os.stat ( 'fooBar.txt' ).st_mode )
これは、パーミッションを 10 進形式で返します。したがってfooBar.txt
、8 進数のファイル許可がある場合0700
、ここでpermissions
は 10 進数の値が設定されます448
。私が望むのは、パーミッションごとに 9 つの変数 ( ownerRead
、ownerWright
、ownerExecute
、groupRead
...) を設定することです。これを行う場合は、次のようなブルート フォース メソッドを使用します。
statInfo = os.stat
permissions = stat.S_IMODE ( os.stat ( 'fooBar.txt' ).st_mode )
octPermissions = oct ( permissions )
ownerRead = octPermissions [1] >= 4
ownerWrite = octPermissions [1] == 2 or octPermissions [1] == 6 or octPermissions [1] == 3 or
ownerExecute = octPermissions [1] == 1 or octPermissions [1] == 5 or octPermissions [1] == 3
この関数がかなり呼び出されるため、8 進数に変換することなくこれを行うより効率的な方法はありますか?