Python下的os模块补充与时间模块概述

1、返回操作系统类型

返回值为posix,是linux操作系统
返回值为nt,是windows操作系统
import os

# print(os.name)
# #posix
#
# print('Linux' if os.name=='posix' else 'Windows')
# #Linux

2、返回操作系统的详细信息

# info=os.uname()
# print(info)
# #posix.uname_result(sysname='Linux', nodename='foundation54.ilt.example.com',
# # release='3.10.0-514.el7.x86_64', version='#1 SMP Wed Oct 19 11:24:13 EDT 2016',
# # machine='x86_64')
#
# print(info.sysname)
# #Linux
#
# print(info.nodename)
# #foundation54.ilt.example.com

3、系统的环境变量

# print(os.environ)
# #environ({'PATH': '/home/kiosk/PycharmProjects/20191206/bin:usr/local/python3/bin:/usr/lo...
#
# print(os.environ.get('PATH'))
# #/home/kiosk/PycharmProjects/20191206/...

4、判断是否为绝对路径

# ##### 只能判断输入的路径是否为绝对路径的格式,不能判断该路径代表的目录或文件是否真实存在
# print(os.path.isabs('/abc/time'))
# #True
#
# print(os.path.isabs('time'))
# #False

5、生成绝对路径

# print(os.path.abspath('time'))
# #/home/kiosk/PycharmProjects/20191206/time
#
# print(os.path.join(os.path.abspath('.'),'abc'))
# #/home/kiosk/PycharmProjects/20191206/abc
#
# print(os.path.join('/opt','123'))
# #/opt/123

6、获取目录名或文件名

# ##### 只能将所给路径按格式抓取文件名或目录名,不能判断该路径是否真实存在
# filename = '/etc/123/456/abc.txt'
# print(os.path.basename(filename))
# #abc.txt
#
# print(os.path.dirname(filename))
# #/etc/123/456

7、创建目录

# os.mkdir('123')         #在当前所在路径下建立123目录
# os.makedirs('dir1/dir2/dir3/dir4')  #在当前所在路径下递归建立dir1/dir2/dir3/dir4

8、删除目录

目录不能递归删除,只能一层一层删除
# os.rmdir('123')           #删除当前路径下的目录123
# os.rmdir('dir1/dir2/dir3/dir4') #想要删除dir1,必须从dir4开始逐层删除
# os.rmdir('dir1/dir2/dir3')
# os.rmdir('dir1/dir2')
# os.rmdir('dir1')            #最终删除dir1

9、创建文件

# os.mknod('abc.txt')     #在当前路径下建立abc.txt文件

10、删除文件

# os.remove('abc.txt')      #在当前路径下删除abc.txt文件

11、文件的重命名

# os.rename('k-v.txt','abc.txt')  #将k-v.txt文件重命名为abc.txt

12、判断文件或目录是否存在

# print(os.path.exists('abc.txt'))
# #True

13、分离文件名和后缀名

只会按照输入的内容格式分离文件名和后缀名,不会判断该内容是否正确
# print(os.path.splitext('123.456'))
# #('123', '.456')    #分离得到的结果是一个元组

14、分离目录名和文件名

只会按照输入内容的格式将目录名和文件名分离,不会判断该内容是否正确
# print(os.path.split('/123/456/abc'))
# #('/123/456', 'abc')    #分离得到的结果是一个元组

二.时间模块

时间表示的几种类型
# import os
# import time

1、时间戳

# print(time.time())
# #1575610806.4070387

2、字符串时间

# print(time.ctime())
# #Fri Dec  6 13:40:06 2019

3、元组类型时间

# print(time.localtime())
# #time.struct_time(tm_year=2019, tm_mon=12, tm_mday=6, tm_hour=13, tm_min=40, tm_sec=6, tm_wday=4, tm_yday=340, tm_isdst=0)
#
# A=time.localtime()
# print(A.tm_year)
# #2019
# print(A.tm_mon)
# #12
# print(A.tm_yday)
# #340
# print(A.tm_mday)
# #6
# import time
# import os
<1>、把元组时间转换为其他时间
# ### (1)把元组时间转换为时间戳

# tuple_time=time.localtime()
# print(time.mktime(tuple_time))
# #1575612773.0
#
# ### (2)把元组时间转换为字符串时间
# print(time.strftime('%d-%m',tuple_time))
# #06-12
#
# print(time.strftime('%y/%m/%d',tuple_time))
# #19/12/06
#
# print(time.strftime('%T',tuple_time))
# #14:14:38
#
# print(time.strftime('%F',tuple_time))
# #2019-12-06
<2>、把时间戳转换为其他时间
# ### (1)把时间戳转换为字符串时间
# pwd_time=os.path.getctime('/etc/passwd')
# print(pwd_time)
# #1572682831.524544
#
# print(time.ctime(pwd_time))
# #Sat Nov  2 16:20:31 2019
#
# ### (2)把时间戳转换为元组时间
# print(time.localtime(pwd_time))
# #time.struct_time(tm_year=2019, tm_mon=11, tm_mday=2, tm_hour=16, tm_min=20, tm_sec=31, tm_wday=5, tm_yday=306, tm_isdst=0)
<3>、字符串时间不能直接转换

三.datetime

1、datetime的基本用法

import os
from datetime import date
from datetime import datetime
from datetime import timedelta

# print(date.today())
# #2019-12-06
#
# print(datetime.now())
# #2019-12-06 14:25:33.023930

2、如何计算三天前和三天后的时间

# time=date.today()
# delta=timedelta(days=3)
# print(time+delta)
# #2019-12-09
#
# print(time-delta)
# #2019-12-03

3、如何计算三小时前和三小时后的时间

# nowtime=datetime.now()
# delta=timedelta(hours=3)
# print(nowtime)
# #2019-12-06 14:28:33.670279
#
# print(nowtime+delta)
# #2019-12-06 17:28:08.028482
#
# print(nowtime-delta)
# #2019-12-06 11:28:08.028482

4、返回两个时间,计算两个时间之间的时间差

# Atime=datetime.now()
# print(Atime)
# #2019-12-06 14:30:01.397621
#
# Btime=os.path.getmtime('/etc/passwd')
# print(Btime)
# #1572682831.4915414
#
# Ctime=datetime.fromtimestamp(Btime)
# print(Ctime)
# #2019-11-02 16:20:31.491541
#
# delta=Atime-Ctime
# print(delta)
# #33 days, 22:15:06.528375

5、

import psutil

print('主机信息'.center(40,'*'))
info=os.uname()
print(
    """
    操作系统:%s
    主机名称:%s
    内核版本:%s
    硬件架构:%s
    """
    %(info.sysname,info.nodename,info.release,info.machine)
)

# ******************主机信息******************
#
#     操作系统:Linux
#     主机名称:foundation54.ilt.example.com
#     内核版本:3.10.0-514.el7.x86_64
#     硬件架构:x86_64
print('开机信息'.center(40,'*'))
boot_time=psutil.boot_time()    #会返回一个时间戳
#将时间戳转换为datetime类型时间
boot_timeA=datetime.fromtimestamp(boot_time)
print(boot_timeA)
now_time=datetime.now()
print(now_time)
delta=now_time-boot_timeA
print(delta)

print('开机时间为:',boot_timeA)
print('当前时间为:',str(now_time).split('.')[0])
print('开机时长为:',str(delta).split('.')[0])

print('当前登陆用户'.center(40,'*'))
loginuser=psutil.users()
print(loginuser)

# ******************开机信息******************
# 2019-12-06 08:41:07
# 2019-12-06 14:55:43.241514
# 6:14:36.241514
# 开机时间为: 2019-12-06 08:41:07
# 当前时间为: 2019-12-06 14:55:43
# 开机时长为: 6:14:36
# *****************当前登陆用户*****************
# [suser(name='kiosk', terminal=':0', host='localhost', started=1575592960.0, pid=1441), suser(name='kiosk', terminal='pts/1', host='localhost', started=1575594112.0, pid=2669), suser(name='kiosk', terminal='pts/2', host='localhost', started=1575596544.0, pid=2669)]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值