一、os.stat()函数介绍
Python os.stat()函数用于获取文件属性信息,包括文件大小、创建时间、修改时间等。该函数返回一个包含文件属性信息的stat对象,可以通过该对象的各种方法获取不同属性信息。下面是os.stat()函数的语法:
os.stat(path)
其中,path参数为文件路径,可以是绝对路径或相对路径。
下面是一个简单的示例,通过os.stat()函数获取文件属性信息:
import os statinfo = os.stat('./example.txt') print('文件大小:', statinfo.st_size) print('最近一次访问时间:', statinfo.st_atime) print('最近一次修改时间:', statinfo.st_mtime)
本示例中,使用os.stat()函数获取了“example.txt”文件的属性信息,并输出了文件大小、最近一次访问时间、最近一次修改时间。output:
文件大小: 21 最近一次访问时间: 1621470765.0646236 最近一次修改时间: 1621470762.1572392
二、stat对象属性介绍
os.stat()函数返回一个stat对象,stat对象包含了文件属性信息,下面介绍一些常用的stat对象属性:
1. st_size
该属性返回文件大小,单位为字节。
2. st_atime
该属性返回最近一次访问时间,返回值为时间戳。
3. st_mtime
该属性返回最近一次修改时间,返回值为时间戳。
4. st_ctime
该属性返回文件创建时间,返回值为时间戳。
5. st_mode
该属性返回文件的访问权限,以位掩码的形式表示。位掩码是一种用于在二进制下表示一个数值的方法,也称位标记、掩码值等。
下面是一个获取文件访问权限的示例:
import os statinfo = os.stat('./example.txt') print('文件访问权限:', statinfo.st_mode)
输出结果为:33188。
可以将该数字转换为二进制,然后从右向左数第 1、2、3 位表示文件所属者的权限,第 4、5、6 位表示同组用户的权限,第 7、8、9 位表示其他用户的权限。每一位上如果是 1,表示有该权限,如果是 0,表示没有该权限。例如本示例中的数字 33188 转换为二进制为 1000001011001100,从右向左数第 1、2、3 位表示该文件所属用户有读、写权限,第 4、5、6 位表示同组用户有读权限,第 7、8、9 位表示其他用户没有任何权限。
三、常用时间戳转换方法
os.stat()函数返回的时间戳需要通过转换才能直观地查看时间信息。下面介绍一些常用的时间戳转换方法:
1. 时间戳转时间字符串
可以使用time模块的localtime函数将时间戳转换为struct_time对象,再使用strftime函数将struct_time对象转换为时间字符串。下面是一个示例:
import os import time statinfo = os.stat('./example.txt') atime = time.localtime(statinfo.st_atime) atime_str = time.strftime('%Y-%m-%d %H:%M:%S', atime) print('最近一次访问时间:', atime_str)
输出结果为:“最近一次访问时间: 2021-05-21 16:59:25”
2. 时间字符串转时间戳
可以使用datetime模块的strptime函数将时间字符串转换为datetime对象,再使用timestamp函数将datetime对象转换为时间戳。下面是一个示例:
import datetime time_str = '2021-05-21 16:59:25' time_dt = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S') time_stamp = time_dt.timestamp() print('时间戳:', time_stamp)
输出结果为:时间戳:1621598365.0
四、小结
本文介绍了Python os.stat()函数的使用方法,以及常用的获取文件属性信息的属性和时间戳转换方法。在实际开发中,获取文件属性信息时需要注意文件访问权限和时间戳的转换方法,以便更好地处理文件。希望本文能够对大家有所帮助。