日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 文件状态_Python:如何访问文件的状态

發布時間:2023/12/10 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 文件状态_Python:如何访问文件的状态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、案例:在某些項目中,需要獲取文件的狀態

文件狀態:os.stat(path)

1、文件的類型:普通文件、目錄、符號鏈接、設備文件或管道(一般在Linux上)。。。

2、文件的訪問權限:一般為讀、寫、執行,3個權限;

3、文件的最后的訪問時間(對應read操作)、最后的修改時間(對應write操作)、最后的節點狀態更改時間(對應的chang_move、chang_name的操作)

4、獲取普通文件的大小,也就是字節數

#普通文件:如.py、.txt、.csv等;

#目錄文件:目錄d/

#符號鏈接文件:x.txt -> a.txt,也就是x.txt引用了普通文件a.txt

二、Python中如何獲取文件的狀態

方法一:系統調用

標準庫os模塊下的三個系統調用:stat、fstat、lstat,獲取文件狀態;

1)os.stat(path)、os.lstat(path)、os.fstat(fileno):獲取指定文件的狀態;

2)stat和lstat的差異:表現在對符號鏈接文件的操作,如x.txt -> a.txt:

#os.lstat('x.txt'):返回符號鏈接x.txt文件的狀態;

#os.stat('x.txt'):返回的是a.txt文件的狀態,因為stat,要跟隨符號鏈接,指向a.txt文件;

3)fstat和stat功能一樣,差異:os.fstat()操作的是文件的描述符(fileno),不是文件路徑;

方法二:快捷函數

標準庫中os.path下的一些函數;#更加簡潔

三、實例查看文件狀態(采用方法一)

1)得到文件類型:os.stat('test.txt').st_mode

importos

f= open('test.txt', 'w')

s= 'abcde'f.write(s)

f.close()#得到文件狀態

test = os.stat('test.txt')#查看文件狀態

print(test)#輸出:os.stat_result(st_mode=33206, st_ino=562949953421655, st_dev=995426, st_nlink=1, st_uid=0, st_gid=0, st_size=5, st_atime=1523433493, st_mtime=1523588571, st_ctime=1523433493)

#文件類型存放在st_mode中

print(test.st_mode)#輸出:33206#33206實際上是一些標志位構成的;

#將狀態的標志位轉換為二進制(用bin函數),也就是解析此標志位,可直觀看出33206所表示的標志位

print(bin(test.st_mode))#輸出:0b1000000110110110

import stat

#查看stat模塊的功能

print(help(stat))

2)查看文件權限:

importstat#stat.S_ISDIR:判斷文件是不是目錄,若是,返回True,否則返回False

s1 =stat.S_ISDIR(test.st_mode)#stat.S_ISREG:判斷文件是不是普通文件;

s2 =stat.S_ISREG(test.st_mode)#stat.S_ISBLK:判斷是否是塊設備;

#查看文件的讀權限,通過與stat.S_IRUSR(讀權限)取交集,來看文件是否有讀權限;

test.st_mode &stat.S_IRUSR#查看用戶對文件的執行權限

test.st_mode &stat.S_IXUSER#查看其它人對文件的執行權限

test.st_mode & stat.S_IXOTH

3)查看文件的三個時間狀態,訪問、修改、更新:os.stat('test.txt').st_atime/st_mtime/st_ctime

importos

f= open('test.txt', 'w')

s= 'abcde'f.write(s)

f.close()#得到文件狀態

test = os.stat('test.txt')#查看文件狀態

print(test)#輸出:os.stat_result(st_mode=33206, st_ino=562949953421655, st_dev=995426, st_nlink=1, st_uid=0, st_gid=0, st_size=5, st_atime=1523433493, st_mtime=1523588571, st_ctime=1523433493)

#查看3個時間,并通過time模塊下的locatime()方法將秒改為現代時間

import time

#查看最近的訪問時間:test.st_time

print(time.locatime(test.st_atime))

#查看最近修改時間:test.st_mtime

print(time.locatime(test.st_mtime))

#查看最近節點狀態更新時間:test.st_ctime

print(time.locatime(test.st_ctime))

4)查看文件大小

#輸出:os.stat_result(st_mode=33206, st_ino=562949953421655, st_dev=995426, st_nlink=1, st_uid=0, st_gid=0, st_size=5, st_atime=1523433493, st_mtime=1523588571, st_ctime=1523433493)

#查看文件大小:字節數

print(test.st_size)

四、實例查看文件狀態(采用方法一)

標準庫中os.path下的一些函數;#更加簡潔

總結

以上是生活随笔為你收集整理的python 文件状态_Python:如何访问文件的状态的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。