Python学习之Part11.OS模块

1. OS模块

os: 即Operation System 操作系统模块;
  此模块是Python标准库中用于使用操作系统功能的模块.

os模块 提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,所以离不了os模块。编程时,需要实现对文件和目录进行增删改查,这就需要使用os模块提供的方法。

使用os模块时,应先导入模块:

import os

1.返回操作系统类型: os.name

返回操作系统类型:
 返回值:posix是linux操作系统
 返回值:nt是windows操作系统

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

输出结果:
在这里插入图片描述
2.操作系统的详细信息: os.uname()

# 注意:在win10下运行此方法会报错
info = os.uname()
print(info)

输出结果包含本机操作系统类型,主机名,发行版本号,架构等信息:
在这里插入图片描述在这里插入图片描述
同时,也可以输出你想要的具体的某个信息,例如:

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

输出结果:
在这里插入图片描述
3.系统的环境变量: os.environ

# 获取系统所有的环境变量
print(os.environ)

输出结果如下:
在这里插入图片描述

# 获取某个具体的环境变量:
#	返回此环境变量的值
print(os.environ.get('PATH'))

在这里插入图片描述4.判断是否是绝对路径: os.path.isabs()
返回值
 是绝对路径,返回True
 相对路径,返回False

print(os.path.isabs('/tmp/gf'))
print(os.path.isabs('hello'))

运行结果:
在这里插入图片描述
5.生成绝对路径
1. os.path.abspath()
生成当前目录下相应的绝对路径信息,
返回值类型:字符串

print(os.path.abspath('hello.png'))
print(type(os.path.abspath('hello.png')))

输出结果如下:
在这里插入图片描述2. os.path.join()
将两个参数连接起来形成一个绝对路径信息;
返回值类型:字符串

print(os.path.join(os.path.abspath('.'),'hello'))
print(os.path.join('/home/kiosk','python.jpg'))

输出结果:
在这里插入图片描述6.获取目录名和文件名
1. os.path.basename()
获取文件名,返回值为字符串类型的文件名
2. os.path.dirname()
获取目录名,返回值为字符串类型的目录名

# 定义一个绝对路径
filename = '/home/dd/Desktop/filename'
# 获取文件名
print(os.path.basename(filename))
# 获取目录名
print(os.path.dirname(filename))

运行结果如下:
在这里插入图片描述
7. 创建目录
1. os.mkdir()
在当前目录下创建子目录:与mkdir的效果相同
 若子目录不存在,则创建子目录,创建成功,返回None;
 若子目录存在,则会报错。

# 创建子目录img
os.mkdir('img')

运行结果:程序无报错,进入当前目录,可看到img已经创建成功
在这里插入图片描述
2. os.makedirs()
在当前目录下创建多级子目录:与midir -p 的效果相同
 若子目录不存在,则创建子目录,创建成功,返回None;
 若子目录存在,则会报错。

os.makedirs('img/1/2')

运行效果:可看到目录被逐级创建出
在这里插入图片描述8. 删除目录(不能递归删除)
os.rmdir()
只能删除空目录,即若目录中存在文件或子目录,则不能删除
 若子目录不存在或不是空目录,则执行时报错;
 若子目录存在且为空目录,则删除,返回None。

# 逐级删除目录
os.rmdir('img/1/2')
os.rmdir('img/1')
os.rmdir('img/')

运行结果:刚才递归创建的目录img被完全删除
在这里插入图片描述
9.创建文件 和 删除文件
1. os.mknod()
 若文件存在,则执行时报错;
 若文件不存在,则创建相应文件,返回None。

# 在当前目录下撞见文件test.txt
os.mknod('test.txt')

运行结果如下:文件被
在这里插入图片描述
2. os.remove()
 若文件存在,则删除,删除成功返回None;
 若文件不存在,则执行时报错。

# 删除当前目录下的文件text.txt
os.remove('test.txt')

运行效果:text.txt文件已经被删除
在这里插入图片描述10. 文件的重命名
os.rename()
 若文件存在,则对文件进行重命名,成功返回None;
 若文件不存在,则执行时报错。

# 先在当前目录下创建文件text.txt
os.mknod('test.txt')
# 将text.txt文件重命名为text_rename.txt
os.rename('test.txt','test_rename.txt')

运行效果如下:
在这里插入图片描述
11. 判断文件或目录名是否存在
os.path.exists()
 若文件或目录存在,则返回True;
 若文件或目录不存在,则返回False。

# 判断当前目录下是否存在test_rename.txt文件
print(os.path.exists('test_rename.txt'))
print(os.path.exists('ips.txt'))
# 当前目录下创建img子目录,判断此目录是否存在
os.mkdir('img')
print(os.path.exists('img'))

运行结果:
在这里插入图片描述
12. 分离后缀名和文件名
os.path.splitext()
 不判断所需分离的文件是否存在,仅将传入的参数分离;
 返回一个元组,元组第一个元素是文件名,第二个元素是后缀

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

运行结果:
在这里插入图片描述
可以看到,当前目录下,hello.jpg文件并不存在
在这里插入图片描述
13. 分离目录名和文件名
os.path.split()
 不判断所需分离的文件是否存在,路径是绝对路径还是相对路径,仅将传入的参数分离;
 返回一个元组,元组第一个元素是上层目录,第二个元素是文件名

# 所传路径为绝对路径
print(os.path.split('/tmp/hello/hello.png'))

运行结果:
在这里插入图片描述

# 所传路径为相对路径
print(os.path.split('tmp/hello/hello.png'))

运行结果:
在这里插入图片描述

补充:获取文件或目录的时间戳
os.path.getctime()
 若文件或目录存在,则返回从1970.1.1到当前所经过的秒数,返回值为float型;
 若文件或目录不存在,则报错。

time1 = os.path.getctime('/etc/group')
print(time1)

运行结果:
在这里插入图片描述
将此时间戳转换为我们熟悉的时间 :

import os
import time
time1 = os.path.getctime('/etc/group')
print(time1)
time2 = time.ctime(time1)
print(time2)

运行结果:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值