Python學習 檔案與資料夾狀態stat

2021-10-01 18:21:21 字數 2242 閱讀 5398

在python的標準庫的os模組,提供了stat函式,獲取乙個檔案或者檔案描述符的狀態,類似於呼叫stat()系統呼叫。

函式呼叫介面為:

os.stat(path,

*, dir_fd=

none

, follow_symlinks=

true

)

函式預設跟隨符號鏈結指向,若設定follow_symlinks=false,則不跟隨符號鏈結指向。

函式返回乙個 stat_result 類的例項物件。

範例:

>>

>

import os

>>

> statinfo = os.stat(

'somefile.txt'

)>>

> statinfo

os.stat_result(st_mode=

33188

, st_ino=

7876932

, st_dev=

234881026

,st_nlink=

1, st_uid=

501, st_gid=

501, st_size=

264, st_atime=

1297230295

,st_mtime=

1297230027

, st_ctime=

1297230027

)>>

> statinfo.st_size

264

類os.stat_result的屬性與核心中stat結構體的成員相對應。其中包含的重要屬性主要包括:

st_mode,檔案型別與檔案模式

st_ino,對於unix系統是檔案的inode

st_nlink,硬鏈結的數量

st_size,檔案的位元組大小

st_atime、st_mtime、st_ctime,檔案時間屬性

python的標準庫stat模組定義了一些識別os.stat()、os.fstat()、os.lstat()結果的常量和函式。

識別檔案型別的函式主要包括:

stat.s_isdir(mode),返回非零,表示為目錄

stat.s_isreg(mode),返回非零,表示為普通檔案

stat.s_ischr(mode),返回非零,表示為字元型device檔案

stat.s_isblk(mode),返回非零,表示為block型device檔案

stat.s_isfifo(mode),返回非零,表示為fifo檔案

stat.s_islnk(mode),返回非零,表示為符合鏈結

stat.s_issock(mode),返回非零,表示為socket檔案

範例:

import os, sys

from 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.stat(pathname)

.st_mode

if s_isdir(mode)

:# it's a directory, recurse into it

walktree(pathname, callback)

elif s_isreg(mode)

:# it's a file, call the callback function

callback(pathname)

else

:# unknown file type, print a message

print

('skipping %s'

% pathname)

defvisitfile

(file):

print

('visiting'

,file

)if __name__ ==

'__main__'

: walktree(sys.ar**[1]

, visitfile)

Python檔案與資料夾操作

import os import shutil if name main print os.path.abspath print os.path.split d pypro h.py print os.path.splitext d pypro h.py if not os.path.exists ...

Python 刪除檔案與資料夾

要刪除乙個檔案,需匯入os模組,使用其中的os.remove 函式 示例 刪除檔案 test.txt import os os.remove test.txt 為了避免出錯,需要在刪除之前檢查檔案是否存在 示例 刪除前檢查檔案是否存在 import os if os.path.exists test...

檔案與資料夾

建立資料夾 nsstring imagedir nsstring stringwithformat caches nshomedirectory dirname bool isdir no nsfilemanager filemanager nsfilemanager defaultmanager ...