python输出间隔_python-datetime计算时间间隔

本文介绍了Python的datetime模块,展示了如何计算过去和未来的时间,以及如何获取当前主机信息,包括操作系统、主机名、内核版本和硬件架构。此外,还详细讲解了如何获取系统的开机时间和开机时长,以及当前登录用户的获取方法。
摘要由CSDN通过智能技术生成

from datetime import date

from datetime import datetime

print(date.today())#显示今天的年月日

print(datetime.now()) #显示年月日时分秒

输出:

2019-01-21

2019-01-21 19:15:45.623116

1.如何计算三天前的时间和三天后的时间?

from datetime import date, timedelta

from datetime import datetime

d = date.today()

delta = timedelta(days=3)

print(d + delta)

print(d - delta)

输出:

2019-01-24

2019-01-18

2.如何计算两个小时之前的时间? 两个小时之后的时间

from datetime import datetime

from datetime import timedelta

now_hour = datetime.now()

delta = timedelta(hours=2)

print(now_hour - delta)

print(now_hour + delta)

输出:

2019-01-21 18:23:29.649190

2019-01-21 22:23:29.649190

3.返回两个时间, 想计算两个时间之间的时间差

now_time = datetime.now() # 对象 2019-01-21 20:31:59.944669

pwd_time = os.path.getmtime('/etc/passwd') # 时间戳 1547115203.2562485

pwd_time_obj = datetime.fromtimestamp(pwd_time) # 将时间戳转换为字符串日期 2019-01-10 18:13:23.256248

delta = now_time - pwd_time_obj

print(delta)

输出:

11 days, 2:18:36.688421

应用案例:

系统监控

需求:

1. 获取当前主机信息, 包含操作系统名, 主机名, 内核版本, 硬件架构等

2. 获取开机时间和开机时长;

3. 获取当前登陆用户

1. 获取当前主机信息, 包含操作系统名, 主机名, 内核版本, 硬件架构等

import os

print('主机信息'.center(50,'*'))

info = os.uname()

print("""

操作系统:%s

主机名:%s

内核版本:%s

硬核架构:%s

""" %(info.sysname,info.nodename,info.release,info.machine))

输出:

***********************主机信息***********************

操作系统:Linux

主机名:foundation65.ilt.example.com

内核版本:3.10.0-514.el7.x86_64

硬核架构:x86_64

2. 获取开机时间和开机时长

import psutil

from datetime import datetime

print('开机信息'.center(50,'*'))

boot_time = psutil.boot_time()# 返回时间戳

print('开机时间:',boot_time)

输出:

***********************开机信息***********************

开机时间: 1548040739.0

改成字符串格式:

#将时间戳转换为datetime类型的时间2019-01-15 08:59:01

print('开机信息'.center(50,'*'))

boot_time_obj = datetime.fromtimestamp(boot_time)

print('开机时间:',boot_time_obj)

输出:

***********************开机信息***********************

开机时间: 2019-01-21 11:18:59

now_time = datetime.now()

delta_time = now_time - boot_time_obj

print(type(delta_time))

print('开机时长:',delta_time)

print('开机时长' ,str(delta_time).split('.')[0]) # str是为了将对象转换为字符串, 实现分离;split分离是为了去掉毫秒

输出:

开机时长: 10:53:54.882409

开机时长 10:53:54

3. 获取当前登陆用户

print("当前登陆用户".center(50, '*'))

login_users = psutil.users()

print(psutil.users())

#集合生成式实现去重

print({user.name for user in login_users})

输出:

[suser(name='kiosk', terminal=':0', host='localhost', started=1548040832.0, pid=1784), suser(name='kiosk', terminal='pts/0', host='localhost', started=1548041984.0, pid=3573)]

{'kiosk'}

info = psutil.users()[0]

print(info)

print(type(info))

输出:

suser(name='kiosk', terminal=':0', host='localhost', started=1548040832.0, pid=1784)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值