时间模块
# ***********************1. 时间表示的几种类型 ********************
# 1). 时间戳
# 2). 字符串的时间
# 3). 元组类型的时间
import os
import time
from datetime import date
# from datetime import time
from datetime import datetime
# 1). 时间戳
print(time.time())
# 2). 字符串的时间
print(time.ctime())
# 3). 元组类型的时间
print(time.localtime())
info = time.localtime()
print(info.tm_year)
print(info.tm_yday)
#*********2.如何对于不同时间类型的转换***********
# 将时间戳类型转换为字符串的时间
pwd_time=os.path.getmtime('/etc/passwd')
print(pwd_time)
print('转化为字符串的时间',time.ctime(pwd_time))
# 将时间戳类型转换为元组类型
print('转化为元组类型的时间',time.localtime(pwd_time))
# 将元组类型时间转换为时间戳
tuple_time = time.localtime()
print('转化为时间戳的时间',time.mktime(tuple_time))
# 将元组的时间转换为字符串时间#Y:year m:month d:day H:hours M:mintinue S:seconds
tuple_time = time.localtime()
print(time.strftime('%Y-%m-%d', tuple_time))
print(time.strftime('%Y-%m-%d %H:%M:%S', tuple_time))
# 将字符串的时间转换为元组
mytime = "2019/01/15"
print(time.strptime(mytime, '%Y/%m/%d'))
datetime计算时间间隔以及时间对象的转换
import os
from datetime import date
from datetime import time
from datetime import datetime
from datetime import timedelta
#计算三天前的时间和三天后的时间
d=date.today()
print('当前时间',d)
delta=timedelta(days=3)
print('三天前的时间',d-delta)
print('三天后的时间',d+delta)
#计算两个小时之前的时间和两个小时之后的时间
now=datetime.now()
print('当前时间',now)
delta=timedelta(hours=2)
print('两个小时之前的时间',now-delta)
print('两个小时之后的时间',now+delta)
# 返回两个时间,计算两个时间之间的时间差
now_time=datetime.now() #时间对象
other_time=os.path.getmtime('/etc/passwd') #时间戳
#把时间戳变成时间对象
other_time_obj=datetime.fromtimestamp(other_time)
delta=now_time-other_time_obj
print('时间差为',delta)
时间模块在系统监控的运用
需求:
1. 获取当前主机信息, 包含操作系统名, 主机名, 内核版本, 硬件架构等
2. 获取开机时间和开机时长;
3. 获取当前登陆用户
import os
from datetime import datetime
import psutil as psutil
print('主机信息'.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() #时间戳
#将时间戳转换为时间对象
boot_time_obj=datetime.fromtimestamp(boot_time)
now_time=datetime.now()
delta=now_time-boot_time_obj
print("开机时间: ",boot_time_obj)
print("开机时长: ", str(delta).split('.')[0]) # split分离是为了去掉毫秒
print("当前时间: ", str(now_time).split('.')[0])
print('当前登陆用户'.center(50, '*'))
login_users=psutil.users()
# 集合生成式实现去重
print('当前用户信息',{user.name for user in login_users})