需求
利用time.time()方法,我们可以计算两个时间点
之间的时间间隔,但是有些时候我们想要得到/etc/group
文件的最后a/c/m的时间,对应的年月日这些信息
并保存再文件date.txt文件中
atime:access time 对文件的访问就会更改这个时间
ctime:create time 文件的内容或者属性更改的时间
mtime:modify time 文件的内容被修改后才会改变
import os
import time
time1 = os.path.getatime('/etc/group')
print(time1)
tuple_time = time.localtime(time1)
print(tuple_time)
print(tuple_time.tm_year) ##年
print(tuple_time.tm_mon) ##月
时间表示的几种类型
1.时间戳 :从00:00:00至当前时间的总秒数
2.字符串时间
3.元组类型的时间
import os
import time1.时间戳
print(time.time())
2.字符串时间
print(time.ctime())
3.元组时间
info = time.localtime()
print(info)
print(info.tm_year) ##年
print(info.tm_mon) ##月
print(info.tm_mday) ##日
时间的转换
把元组时间转换为时间戳
import time
import os
tuple_time = time.localtime()
print(tuple_time)
print(time.mktime(tuple_time))
把元组时间转化成字符串时间
tuple_time = time.localtime()
print(time.strftime('%Y/%m/%d',tuple_time))
print(time.strftime('%T',tuple_time))
print(time.strftime('%F',tuple_time))
将时间戳类型的时间转换成字符串时间
pwd_time = os.path.getctime('/etc/passwd')
print(pwd_time)
print(time.ctime(pwd_time))将时间戳转换为元组
print(time.localtime(pwd_time))
计算时间差
import os
from datetime import date
# import datetime ##若直接导入datetime
# print(datetime.datetime.now()) ##在输出的时候还要多打一个datetime
from datetime import datetime ##所以用这个方法,以便以下实验不需要再多打datetime
from datetime import timedelta ##时间差模块
##点后面可以跟的内容,看图片
date. ()
datetime. ()
print(date.today())
print(datetime.now())
如何计算三天前的时间和三天后的时间
d = date.today()
delta = timedelta(days=3)
print(d - delta)
print(d + delta)
如何计算两个小时前的时间和两个小时后的时间
now_hour = datetime.now()
delta = timedelta(hours=2)
print(now_hour - delta)
print(now_hour + delta)
返回两个时间,计算这两个时间之间的时间差
now_time = datetime.now()
print(now_time)
pwd_time = os.path.getmtime('/etc/passwd')
print(pwd_time)
pwd_time_obj = datetime.fromtimestamp(pwd_time) ##时间戳转换为字符串日期时间
print(pwd_time_obj)
delta = now_time - pwd_time_obj
print(delta)
练习:
需求:
1.获取当前主机信息 包含操作系统名 主机名 内核版本 硬件架构
2.获取开机时间和开机时长
3.获取当前登陆的用户
提示:
psutil模块:主要用于系统监控,分析的限制管理资源及进程的管理,他实现了同等命令工具提供的功能
print(psutil.boot_time()) ##开机时长
print psutil.users() ##当前登陆的用户
import os
from datetime import datetime
import psutilprint('主机信息'.center(50,'*'))
info = os.uname()
print("""
操作系统:%s,
主机名称:%s,
内核版本:%s,
硬件架构:%s
""" %(info.sysname,info.nodename,info.release,
info.machine)
)print('开机信息'.center(50,'*'))
boot_time = psutil.boot_time() #返回一个时间戳
# 将时间戳转化为datetime类型(字符串)的时间
boot_time_obj = datetime.fromtimestamp(boot_time)
print(boot_time_obj)
now_time = datetime.now()
print(now_time)
#delta_time = datetime.now()
delta_time = now_time - boot_time_obj
print(delta_time)print('开机时间:',boot_time_obj)
print('当前时间:',str(now_time).split('.')[0]) ##.split('.')[0]是为了不取后面的秒数
print('开机时长:',str(delta_time).split('.')[0])print('当前登陆用户'.center(50,'*'))
login_user = psutil.users()
print(login_user)
info = psutil.users()[0]
print(info.name)