python文件信息查看和修改

xxxspy 2019-06-25 12:44:03
Categories: Tags:

这篇文章主要介绍文件信息的获取和修改(主要是文件的访问和修改时间)

文件信息的读取

文件系统本身可以显示有关文档的一些有趣信息。例如,它可以告诉你文档文件的大小,以及创建/修改或上次读取的时间。在某些平台上,你还可以找出拥有相关文件的人员。要在Python中获取此信息,您可以在跨平台的os模块中使用stat函数:

1
2
3
4
5
import os

st = os.stat("d:/test.html")
print('Type of st:', type(st))
print('st:', st)
输出(stream):
Type of st: st: os.stat_result(st_mode=33206, st_ino=10133099161596645, st_dev=3649960629, st_nlink=1, st_uid=0, st_gid=0, st_size=9649, st_atime=1561387614, st_mtime=1561387614, st_ctime=1552207589)

如果你懂点英文可能已经看出来我们可以获取的信息:

下面是一个例子, 用来打印文件的大小和修改时间:

1
2
3
st = os.stat('d:/test.html')
print('size:', st.st_size)
print('修改时间:', st.st_mtime)
输出(stream):
size: 9649 修改时间: 1561387614.9498422

如果你想要看到人类能读懂的时间, 可以使用time模块进行转换:

1
2
3
import time

time.asctime(time.localtime(st.st_mtime))
输出(plain):
'Mon Jun 24 22:46:54 2019'

os模块还提供了一个fstat函数,可以在打开的文件中使用。它需要一个整数文件句柄,而不是文件对象,因此您必须在文件对象上使用fileno方法以便获取文件句柄:

1
2
3
f = open('d:/test.html', 'r')
st = os.fstat(f.fileno())
print(st)
输出(stream):
os.stat_result(st_mode=33206, st_ino=10133099161596645, st_dev=3649960629, st_nlink=1, st_uid=0, st_gid=0, st_size=9613, st_atime=1561427779, st_mtime=1561427779, st_ctime=1552207589)

修改”文件的修改时间”

语法是: os.utime(path, time)

我们用下面的小例子来说明:

1
2
3
4
5
6
7
8
9
10
now = time.time()
print('当前的时间:', now)
# 文件真实的访问和修改时间
st = os.stat('d:/test.html')
print('文件的真实修改时间:', st.st_mtime)
# 修改文件修改时间
os.utime('d:/test.html', (now, now-100))
st = os.stat('d:/test.html')
print('文件的修改时间变成:', st.st_mtime)

输出(stream):
当前的时间: 1561428715.2898495 文件的真实修改时间: 1561428043.960675 文件的修改时间变成: 1561428615.2898495
1

注意
本文由jupyter notebook转换而来, 您可以在这里下载notebook
统计咨询请加QQ 2726725926, 微信 mllncn, SPSS统计咨询是收费的
微博上@mlln-cn可以向我免费题问
请记住我的网址: mlln.cn 或者 jupyter.cn