stat — stat()の結果の解釈
ソースコード: :source: `Lib / stat.py`
stat モジュールは、 os.stat()、 os.fstat()、および os.lstat()の結果を解釈するための定数と関数を定義します。 (存在する場合)。 stat()
、fstat()
、およびlstat()
呼び出しの詳細については、システムのドキュメントを参照してください。
バージョン3.4で変更: statモジュールはC実装によってサポートされています。
stat モジュールは、特定のファイルタイプをテストするために次の関数を定義します。
- stat.S_ISDIR(mode)
- モードがディレクトリからのものである場合は、ゼロ以外を返します。
- stat.S_ISCHR(mode)
- モードが文字特殊デバイスファイルからのものである場合は、ゼロ以外を返します。
- stat.S_ISBLK(mode)
- モードがブロック特殊デバイスファイルからのものである場合は、ゼロ以外を返します。
- stat.S_ISREG(mode)
- モードが通常のファイルからのものである場合は、ゼロ以外を返します。
- stat.S_ISFIFO(mode)
- モードがFIFO(名前付きパイプ)からのものである場合は、ゼロ以外を返します。
- stat.S_ISLNK(mode)
- モードがシンボリックリンクからのものである場合は、ゼロ以外を返します。
- stat.S_ISSOCK(mode)
- モードがソケットからのものである場合は、ゼロ以外を返します。
- stat.S_ISDOOR(mode)
モードがドアからのものである場合は、ゼロ以外を返します。
バージョン3.4の新機能。
- stat.S_ISPORT(mode)
モードがイベントポートからのものである場合は、ゼロ以外を返します。
バージョン3.4の新機能。
- stat.S_ISWHT(mode)
モードがホワイトアウトからのものである場合は、ゼロ以外を返します。
バージョン3.4の新機能。
ファイルのモードをより一般的に操作するために、2つの追加機能が定義されています。
- stat.S_IMODE(mode)
- os.chmod()で設定できるファイルのモードの部分、つまり、ファイルの許可ビットに加えて、スティッキービット、set-group-id、およびset-user-idビットを返します。 (それらをサポートするシステム上)。
- stat.S_IFMT(mode)
- ファイルタイプを説明するファイルのモードの部分を返します(上記の
S_IS*()
関数で使用されます)。
通常、ファイルのタイプをテストするには、os.path.is*()
関数を使用します。 ここでの関数は、同じファイルの複数のテストを実行していて、各テストのstat()
システムコールのオーバーヘッドを回避したい場合に役立ちます。 これらは、ブロックデバイスや文字デバイスのテストなど、 os.path で処理されないファイルに関する情報を確認するときにも役立ちます。
例:
ファイルのモードを人間が読める文字列に変換するための追加のユーティリティ関数が提供されています。
- stat.filemode(mode)
ファイルのモードを「-rwxrwxrwx」の形式の文字列に変換します。
バージョン3.3の新機能。
以下のすべての変数は、 os.stat()、 os.fstat()、または os.lstat()によって返される10タプルへの単なるシンボリックインデックスです。 。
- stat.ST_MODE
- iノード保護モード。
- stat.ST_INO
- iノード番号。
- stat.ST_DEV
- デバイスiノードはに存在します。
- stat.ST_NLINK
- iノードへのリンクの数。
- stat.ST_UID
- 所有者のユーザーID。
- stat.ST_GID
- 所有者のグループID。
- stat.ST_SIZE
- プレーンファイルのバイト単位のサイズ。 いくつかの特別なファイルを待機しているデータの量。
- stat.ST_ATIME
- 最終アクセスの時刻。
- stat.ST_MTIME
- 最終変更の時刻。
- stat.ST_CTIME
- オペレーティングシステムによって報告される「ctime」。 一部のシステム(Unixなど)では、最後のメタデータ変更の時刻であり、他のシステム(Windowsなど)では、作成時刻です(詳細については、プラットフォームのドキュメントを参照してください)。
「ファイルサイズ」の解釈は、ファイルの種類によって異なります。 プレーンファイルの場合、これはバイト単位のファイルのサイズです。 Unixのほとんどのフレーバー(特にLinuxを含む)でのFIFOおよびソケットの場合、「サイズ」は、 os.stat()、の呼び出し時に読み取られるのを待機しているバイト数です。 ] os.fstat()、または os.lstat(); これは、特にノンブロッキングオープン後にこれらの特別なファイルの1つをポーリングする場合に役立つことがあります。 他の文字およびブロックデバイスのサイズフィールドの意味は、基盤となるシステムコールの実装によってさらに異なります。
以下の変数は、 ST_MODE フィールドで使用されるフラグを定義します。
上記の関数の使用は、最初のフラグセットの使用よりも移植性があります。
- stat.S_IFSOCK
- ソケット。
- stat.S_IFLNK
- シンボリックリンク。
- stat.S_IFREG
- 通常のファイル。
- stat.S_IFBLK
- ブロックデバイス。
- stat.S_IFDIR
- ディレクトリ。
- stat.S_IFCHR
- キャラクターデバイス。
- stat.S_IFIFO
- FIFO。
- stat.S_IFDOOR
ドア。
バージョン3.4の新機能。
- stat.S_IFPORT
イベントポート。
バージョン3.4の新機能。
- stat.S_IFWHT
ホワイトアウト。
バージョン3.4の新機能。
次のフラグは、 os.chmod()の mode 引数でも使用できます。
- stat.S_ISUID
- UIDビットを設定します。
- stat.S_ISGID
- set-group-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_ENFMT
- SystemVファイルロックの実施。 このフラグは S_ISGID と共有されます。ファイル/レコードのロックは、グループ実行ビット( S_IXGRP )が設定されていないファイルに適用されます。
- stat.S_IREAD
- S_IRUSR のUnixV7シノニム。
- stat.S_IWRITE
- S_IWUSR のUnixV7シノニム。
- stat.S_IEXEC
- S_IXUSR のUnixV7シノニム。
os.chflags()の flags 引数では、次のフラグを使用できます。
- stat.UF_NODUMP
- ファイルをダンプしないでください。
- stat.UF_IMMUTABLE
- ファイルは変更できません。
- stat.UF_APPEND
- ファイルはにのみ追加できます。
- stat.UF_OPAQUE
- ユニオンスタックを通して表示すると、ディレクトリは不透明です。
- stat.UF_NOUNLINK
- ファイルの名前を変更したり、削除したりすることはできません。
- stat.UF_COMPRESSED
- ファイルは圧縮されて保存されます(Mac OS X 10.6以降)。
- stat.UF_HIDDEN
- ファイルはGUI(Mac OS X 10.5+)に表示されるべきではありません。
- stat.SF_ARCHIVED
- ファイルはアーカイブされている可能性があります。
- stat.SF_IMMUTABLE
- ファイルは変更できません。
- stat.SF_APPEND
- ファイルはにのみ追加できます。
- stat.SF_NOUNLINK
- ファイルの名前を変更したり、削除したりすることはできません。
- stat.SF_SNAPSHOT
- ファイルはスナップショットファイルです。
詳細については、* BSDまたはMacOSシステムのマニュアルページ chflags(2)を参照してください。
Windowsでは、 os.stat()によって返されるst_file_attributes
メンバーのビットをテストするときに、次のファイル属性定数を使用できます。 これらの定数の意味の詳細については、 WindowsAPIドキュメントを参照してください。
- stat.FILE_ATTRIBUTE_ARCHIVE
stat.FILE_ATTRIBUTE_COMPRESSED
stat.FILE_ATTRIBUTE_DEVICE
stat.FILE_ATTRIBUTE_DIRECTORY
stat.FILE_ATTRIBUTE_ENCRYPTED
stat.FILE_ATTRIBUTE_HIDDEN
stat.FILE_ATTRIBUTE_INTEGRITY_STREAM
stat.FILE_ATTRIBUTE_NORMAL
stat.FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
stat.FILE_ATTRIBUTE_NO_SCRUB_DATA
stat.FILE_ATTRIBUTE_OFFLINE
stat.FILE_ATTRIBUTE_READONLY
stat.FILE_ATTRIBUTE_REPARSE_POINT
stat.FILE_ATTRIBUTE_SPARSE_FILE
stat.FILE_ATTRIBUTE_SYSTEM
stat.FILE_ATTRIBUTE_TEMPORARY
stat.FILE_ATTRIBUTE_VIRTUAL バージョン3.5の新機能。
Windowsでは、 os.lstat()によって返されるst_reparse_tag
メンバーと比較するために次の定数を使用できます。 これらはよく知られている定数ですが、完全なリストではありません。
- stat.IO_REPARSE_TAG_SYMLINK
stat.IO_REPARSE_TAG_MOUNT_POINT
stat.IO_REPARSE_TAG_APPEXECLINK バージョン3.8の新機能。