新聞中心
stat —- 解析 stat() 結(jié)果
源代碼: Lib/stat.py

創(chuàng)新互聯(lián)主要從事網(wǎng)頁設(shè)計、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機版網(wǎng)站建設(shè))、成都響應式網(wǎng)站建設(shè)、程序開發(fā)、網(wǎng)站優(yōu)化、微網(wǎng)站、小程序設(shè)計等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、網(wǎng)絡營銷經(jīng)驗,集策劃、開發(fā)、設(shè)計、營銷、管理等多方位專業(yè)化運作于一體。
stat 模塊定義了一些用于解析 os.stat(), os.fstat() 和 os.lstat() (如果它們存在) 輸出結(jié)果的常量和函數(shù)。 有關(guān) stat(), fstat() 和 lstat() 調(diào)用的完整細節(jié),請參閱你的系統(tǒng)文檔。
在 3.4 版更改: stat 模塊是通過 C 實現(xiàn)來支持的。
stat 模塊定義了以下函數(shù)來檢測特定文件類型:
stat.S_ISDIR(mode)
如果 mode 來自一個目錄則返回非零值。
stat.S_ISCHR(mode)
如果 mode 來自一個字符特殊設(shè)備文件則返回非零值。
stat.S_ISBLK(mode)
如果 mode 來自一個塊特殊設(shè)備文件則返回非零值。
stat.S_ISREG(mode)
如果 mode 來自一個常規(guī)文件則返回非零值。
stat.S_ISFIFO(mode)
如果 mode 來自一個 FIFO (命名管道) 則返回非零值。
stat.S_ISLNK(mode)
如果 mode 來自一個符號鏈接則返回非零值。
stat.S_ISSOCK(mode)
如果 mode 來自一個套接字則返回非零值。
stat.S_ISDOOR(mode)
如果 mode 來自一個門則返回非零值。
3.4 新版功能.
stat.S_ISPORT(mode)
如果 mode 來自一個事件端口則返回非零值。
3.4 新版功能.
stat.S_ISWHT(mode)
如果 mode 來自一個白輸出則返回非零值。
3.4 新版功能.
定義了兩個附加函數(shù)用于對文件模式進行更一般化的操作:
stat.S_IMODE(mode)
返回文件模式中可由 os.chmod() 進行設(shè)置的部分 —- 即文件的 permission 位,加上 sticky 位、set-group-id 以及 set-user-id 位(在支持這些部分的系統(tǒng)上)。
stat.S_IFMT(mode)
返回文件模式中描述文件類型的部分(供上面的 S_IS*() 函數(shù)使用)。
通常,你應當使用 os.path.is*() 函數(shù)來檢測文件的類型;這里提供的函數(shù)則適用于當你要對同一文件執(zhí)行多項檢測并且希望避免每項檢測的 stat() 系統(tǒng)調(diào)用開銷的情況。 這些函數(shù)也適用于檢測有關(guān)未被 os.path 處理的信息,例如檢測塊和字符設(shè)備等。
示例:
import os, sysfrom stat import *def walktree(top, callback):'''recursively descend the directory tree rooted at top,calling the callback function for each regular file'''for f in os.listdir(top):pathname = os.path.join(top, f)mode = os.lstat(pathname).st_modeif S_ISDIR(mode):# It's a directory, recurse into itwalktree(pathname, callback)elif S_ISREG(mode):# It's a file, call the callback functioncallback(pathname)else:# Unknown file type, print a messageprint('Skipping %s' % pathname)def visitfile(file):print('visiting', file)if __name__ == '__main__':walktree(sys.argv[1], visitfile)
另外還提供了一個附加的輔助函數(shù)用來將文件模式轉(zhuǎn)換為人類易讀的字符串:
stat.filemode(mode)
將文件模式轉(zhuǎn)換為 ‘-rwxrwxrwx’ 形式的字符串。
3.3 新版功能.
在 3.4 版更改: 此函數(shù)支持 S_IFDOOR, S_IFPORT and S_IFWHT。
以下所有變量是一些簡單的符號索引,用于訪問 os.stat(), os.fstat() 或 os.lstat() 所返回的 10 條目元組。
stat.ST_MODE
inode 保護模式。
stat.ST_INO
Inode 號
stat.ST_DEV
Inode 所在的設(shè)備。
stat.ST_NLINK
Inode 擁有的鏈接數(shù)量。
stat.ST_UID
所有者的用戶 ID。
stat.ST_GID
所有者的用戶組ID。
stat.ST_SIZE
以字節(jié)為單位的普通文件大??;對于某些特殊文件則是所等待的數(shù)據(jù)量。
stat.ST_ATIME
上次訪問的時間。
stat.ST_MTIME
上次修改的時間。
stat.ST_CTIME
操作系統(tǒng)所報告的 “ctime”。 在某些系統(tǒng)上(例如 Unix)是元數(shù)據(jù)的最后修改時間,而在其他系統(tǒng)上(例如 Windows)則是創(chuàng)建時間(請參閱系統(tǒng)平臺的文檔了解相關(guān)細節(jié))。
對于“文件大小”的解析可因文件類型的不同而變化。 對于普通文件就是文件的字節(jié)數(shù)。 對于大部分種類的 Unix(特別包括 Linux)的 FIFO 和套接字來說,“大小”則是指在調(diào)用 os.stat(), os.fstat() 或 os.lstat() 時等待讀取的字節(jié)數(shù);這在某些時候很有用處,特別是在一個非阻塞的打開后輪詢這些特殊文件中的一個時。 其他字符和塊設(shè)備的文件大小字段的含義還會有更多變化,具體取決于底層系統(tǒng)調(diào)用的實現(xiàn)方式。
以下變量定義了在 ST_MODE 字段中使用的旗標。
使用上面的函數(shù)會比使用第一組旗標更容易移植:
stat.S_IFSOCK
套接字。
stat.S_IFLNK
符號鏈接。
stat.S_IFREG
普通文件。
stat.S_IFBLK
塊設(shè)備。
stat.S_IFDIR
目錄。
stat.S_IFCHR
字符設(shè)備。
stat.S_IFIFO
先進先出。
stat.S_IFDOOR
門。
3.4 新版功能.
stat.S_IFPORT
事件端口。
3.4 新版功能.
stat.S_IFWHT
白輸出。
3.4 新版功能.
備注
S_IFDOOR, S_IFPORT or S_IFWHT 等文件類型在不受系統(tǒng)平臺支持時會被定義為 0。
以下旗標還可以 os.chmod() 的在 mode 參數(shù)中使用:
stat.S_ISUID
設(shè)置 UID 位。
stat.S_ISGID
設(shè)置分組 ID 位。 這個位有幾種特殊用途。 對于目錄它表示該目錄將使用 BSD 語義:在其中創(chuàng)建的文件將從目錄繼承其分組 ID,而不是從創(chuàng)建進程的有效分組 ID 繼承,并且在其中創(chuàng)建的目錄也將設(shè)置 S_ISGID 位。 對于沒有設(shè)置分組執(zhí)行位 (S_IXGRP) 的文件,設(shè)置分組 ID 位表示強制性文件/記錄鎖定 (另請參見 S_ENFMT)。
stat.S_ISVTX
固定位。 當對目錄設(shè)置該位時則意味著此目錄中的文件只能由文件所有者、目錄所有者或特權(quán)進程來重命名或刪除。
stat.S_IRWXU
文件所有者權(quán)限的掩碼。
stat.S_IRUSR
所有者具有讀取權(quán)限。
stat.S_IWUSR
所有者具有寫入權(quán)限。
stat.S_IXUSR
所有者具有執(zhí)行權(quán)限。
stat.S_IRWXG
組權(quán)限的掩碼。
stat.S_IRGRP
組具有讀取權(quán)限。
stat.S_IWGRP
組具有寫入權(quán)限。
stat.S_IXGRP
組具有執(zhí)行權(quán)限。
stat.S_IRWXO
其他人(不在組中)的權(quán)限掩碼。
stat.S_IROTH
其他人具有讀取權(quán)限。
stat.S_IWOTH
其他人具有寫入權(quán)限。
stat.S_IXOTH
其他人具有執(zhí)行權(quán)限。
stat.S_ENFMT
System V 執(zhí)行文件鎖定。 此旗標是與 S_ISGID 共享的:文件/記錄鎖定會針對未設(shè)置分組執(zhí)行位 (S_IXGRP) 的文件強制執(zhí)行。
stat.S_IREAD
Unix V7 中 S_IRUSR 的同義詞。
stat.S_IWRITE
Unix V7 中 S_IWUSR 的同義詞。
stat.S_IEXEC
Unix V7 中 S_IXUSR 的同義詞。
以下旗標可以在 os.chflags() 的 flags 參數(shù)中使用:
stat.UF_NODUMP
不要轉(zhuǎn)儲文件。
stat.UF_IMMUTABLE
文件不能被更改。
stat.UF_APPEND
文件只能被附加。
stat.UF_OPAQUE
當通過聯(lián)合堆棧查看時,目錄是不透明的。
stat.UF_NOUNLINK
文件不能重命名或刪除。
stat.UF_COMPRESSED
文件是壓縮存儲的(macOS 10.6+)。
stat.UF_HIDDEN
文件不可被顯示在 GUI 中(macOS 10.5+)。
stat.SF_ARCHIVED
文件可能已存檔。
stat.SF_IMMUTABLE
文件不能被更改。
stat.SF_APPEND
文件只能被附加。
stat.SF_NOUNLINK
文件不能重命名或刪除。
stat.SF_SNAPSHOT
文件有一個快照文件
請參閱 *BSD 或 macOS 系統(tǒng)的指南頁 chflags(2)) 來了解詳情。
在 Windows 上,以下文件屬性常量可被用來檢測 os.stat() 所返回的 st_file_attributes 成員中的位。 請參閱 Windows API 文檔 了解有關(guān)這些常量含義的詳情。
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 新版功能.
新聞名稱:創(chuàng)新互聯(lián)Python教程:stat—-解析stat()結(jié)果
文章起源:http://m.5511xx.com/article/cdepspi.html


咨詢
建站咨詢
