day06-OS模块

一、os基础操作

1.返回操作系统类型

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

在这里插入图片描述

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

import os
info=os.uname()
print(info)
print(info.sysname)
print(info.nodename)

在这里插入图片描述

3.系统的环境变量

import os
print(os.environ)
print('###')
print(os.environ.get('PATH'))

在这里插入图片描述在这里插入图片描述

4.判断是否是绝对路径

import os
print(os.path.isabs('/tmp/fff'))
print(os.path.isabs('data.txt'))

在这里插入图片描述

5.生成绝对路径

import os
print(os.path.abspath('hello.png'))
print(os.path.join('/home/kiosk/','aa'))
print(os.path.join(os.path.abspath('.'),'bb'))

在这里插入图片描述

6.获取目录名和文件名

import os
filename='/home/kiosk/PycharmProjects/20191126/day05/data.txt'
print(os.path.basename(filename))
print(os.path.dirname(filename))

在这里插入图片描述

7.创建目录

import os
os.mkdir('img')   #单级目录用os.mkdir()
os.makedirs('img/img1/img2')  #多级目录用os.makedirs()
#不能递归删除目录
os.rmdir('img')
# os.rmdir('img')#递归目录不能一下删除
os.rmdir('img/img1/img2') #只能逐级删除

在这里插入图片描述

8.创建文件

import os
# os.mknod('okk.txt')
os.remove('okk.txt')

9.文件的重命名

import os
os.rename('data.txt','dddddd.txt')

10.判断文件或目录是否存在

import os
print(os.path.exists('fhhgkjs'))

11.分离文件名和后缀名

import os
print(os.path.splitext('hello.jpg') )

在这里插入图片描述

12.将目录名和文件名分开

import os
print(os.path.split('/opt/hello.jpg'))

在这里插入图片描述

二、时间表示的几种类型

1.时间戳
2.字符串时间
3.元组类型的时间

import time
#时间戳
print(time.time())
#字符串时间
print(time.ctime())
#元组时间
print(time.localtime())
info=time.localtime()
print(info.tm_mon)
print(info.tm_mday)

在这里插入图片描述

三、常用的时间转换

1.把元组时间转换为时间戳

import time
tuple_time=time.localtime()
print(tuple_time)
#转换为时间戳
print(time.mktime(tuple_time))

在这里插入图片描述

2.把元组时间转换为字符串时间

import time
tuple_time=time.localtime()
print(tuple_time)
#转换为时间戳
print(time.strftime('%d-%m',tuple_time))
print(time.strftime('%y/%m/%d',tuple_time))
print(time.strftime('%T',tuple_time))
print(time.strftime('%F',tuple_time))

在这里插入图片描述

3.将时间戳类型的时间转换为字符串时间

import os
import time
pwd_time=os.path.getatime('/etc/passwd')
print(pwd_time)
print(time.ctime(pwd_time))

在这里插入图片描述

4.将时间戳转换为元组

import os
import time
pwd_time=os.path.getatime('/etc/passwd')
print(pwd_time)
print(time.localtime(pwd_time))

在这里插入图片描述
牛刀小试:
练习1:

  1. 在当前目录新建目录img, 里面包含多个文件,
    文件名各不相同(X4G5.png)
  2. 将当前img目录所有以.png结尾的后缀名改为.jpg
生成文件:
def gen_code(len=4):
    # 随机生成4位验证码
    li = random.sample(string.ascii_letters+string.digits,len)
    return  ''.join(li)
def create_file():
    # 随机生成100个文件名
    li = { gen_code() for i in range(100)}
    os.mkdir('img')
    for name in li:
        os.mknod('img/' + name + '.png')
create_file()

改后缀名:

原先生成的文件:
在这里插入图片描述
改名后的文件:
在这里插入图片描述
练习2:
需求
利用time.time()方法,我们可以计算两个时间点
之间的时间间隔,但是有些时候我们想要得到/etc/group
文件的最后a/c/m的时间,对应的年月日这些信息
并保存再文件date.txt文件中

import os
import time

time1 = os.path.getctime('/etc/passwd') #时间戳
print(time1)
tuple_time = time.localtime(time1) #元组时间
print(tuple_time)
year = tuple_time.tm_year
month = tuple_time.tm_mon
day = tuple_time.tm_mday
print(year,month,day)
with open('data.txt','w') as f:
    f.write('%d %d %d' %(year,month,day))
    f.write('\n')

在这里插入图片描述在这里插入图片描述练习3:
应用案例-----系统监控
需求:
1.获取当前主机信息 包含操作系统名 主机名 内核版本 硬件架构
2.获取开机时间和开机时长
3.获取当前登陆的用户

import os
from datetime import datetime
import 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() # 返回一个时间戳
# 将时间戳转换为datetime类型的时间
boot_time_obj = datetime.fromtimestamp(boot_time)
print(boot_time_obj)
now_time = datetime.now()
print(now_time)
delta_time = now_time - boot_time_obj
print(delta_time)

print('开机时间:',boot_time_obj)
print('当前时间:',str(now_time).split('.'))
print('开机时长:',str(delta_time).split('.'))

print('当前登陆用户'.center(50,'*'))
login_user = psutil.users()
print(login_user)
info = psutil.users()[0]
print(info.name)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值