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

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


咨詢
建站咨詢
