85

ファイルアクセスのパーミッションを変更しようとしています:

os.chmod(path, mode)

読み取り専用にしたい:

os.chmod(path, 0444)

ファイルを読み取り専用にする他の方法はありますか?

4

9 に答える 9

87
os.chmod(path, stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH)

統計

次のフラグは、os.chmod() のモード引数でも使用できます。

stat.S_ISUIDUID ビットを設定します。

stat.S_ISGIDセット グループ ID ビット。このビットにはいくつかの特別な用途があります。ディレクトリの場合、BSD セマンティクスがそのディレクトリに使用されることを示します。そこで作成されたファイルは、作成プロセスの有効なグループ ID からではなく、ディレクトリからグループ ID を継承し、そこで作成されたディレクトリも S_ISGID ビット セットを取得します。グループ実行ビット (S_IXGRP) が設定されていないファイルの場合、set-group-ID ビットは必須のファイル/レコード ロックを示します (S_ENFMT も参照)。

stat.S_ISVTXスティッキービット。このビットがディレクトリに設定されている場合、そのディレクトリ内のファイルは、ファイルの所有者、ディレクトリの所有者、または特権プロセスによってのみ名前変更または削除できることを意味します。

stat.S_IRWXUファイル所有者のパーミッションのマスク。

stat.S_IRUSR所有者には読み取り権限があります。

stat.S_IWUSR所有者には書き込み権限があります。

stat.S_IXUSR所有者には実行権限があります。

stat.S_IRWXGグループ権限のマスク。

stat.S_IRGRPグループには読み取り権限があります。

stat.S_IWGRPグループには書き込み権限があります。

stat.S_IXGRPグループには実行権限があります。

stat.S_IRWXO他のユーザー (グループ外) のアクセス許可のマスク。

stat.S_IROTHその他は読み取り権限を持っています。

stat.S_IWOTHその他は、書き込み権限があります。

stat.S_IXOTHその他は実行権限を持っています。

stat.S_ENFMTSystem V ファイル ロックの強制。このフラグは S_ISGID と共有されます。ファイル/レコードのロックは、グループ実行ビット (S_IXGRP) が設定されていないファイルに適用されます。

stat.S_IREADS_IRUSR の Unix V7 シノニム。

stat.S_IWRITES_IWUSR の Unix V7 シノニム。

stat.S_IEXECS_IXUSR の Unix V7 シノニム。

于 2013-04-27T07:45:45.490 に答える
37

os.chmod(path, 0444) 、Python 2.x でファイルのアクセス許可を変更するための Python コマンドです。Python 2 と Python 3 を組み合わせたソリューションの場合は、 に変更04440o444ます。

Python を使用して、いつでも chmod コマンドを呼び出すことができますsubprocess。ただし、これはLinuxでのみ機能すると思います。

import subprocess

subprocess.call(['chmod', '0444', 'path'])
于 2013-04-27T07:21:07.643 に答える
3

pathlibも使用できます

from pathlib import Path

fl = Path("file_name")

fl.chmod(0o444)
于 2020-04-20T17:25:28.980 に答える
-1

フラグを覚える必要はありません。いつでもできることを覚えておいてください:

subprocess.call(["chmod", "a-w", "file/path])

移植性はありませんが、書きやすく覚えやすいです。

  • u - ユーザー
  • g - グループ
  • o - その他
  • a - すべて
  • + または - (権限の追加または削除)
  • r - 読む
  • w - 書く
  • x - 実行

man chmod追加のオプションと詳細な説明については、 を参照してください。

于 2018-03-26T13:18:52.487 に答える