###os模块####
1.os模块的作用:os模块是python标准库中的一个用于访问操作系统功能的模块,os模块提供了其它操作系统接口,可以实现跨平台访问。
###系统操作####
1.os.sep #返回系统路径的分隔符
linux类系统的路径分隔符“/”,windows系统分隔符“\”;
import os
print(os.sep) #返回系统路径的分隔符
/ ##运行返回结果
2.os.name #返回当前平台操作系统
返回操作系统类型 值为:posix 是linux操作系统,值为nt 是windows操作系统
print(os.name) 返回当前平台操作系统
if os.name == 'posix':
print('linux')
else:
print('其他操作系统')
运行结果:
posix
Linux
- os.uname( ) #返回操作系统的详细信息
info =os.uname( )
print(info) #返回操作系统的详细信息
print(info.sysname) #输出系统操作系统类型
print(info.nodename) #输出主机名称
print(info.release) #输出内核版本
print(info.version) #输出系统版本
print(info.machine) #输出硬件架构
运行结果:
posix.uname_result(sysname='Linux', nodename='foundation46.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') 返回操作系统的详细信息
Linux #输出系统操作系统类型
foundation46.ilt.example.com #输出主机名称
3.10.0-514.el7.x86_64 #输出内核版本
#1 SMP Wed Oct 19 11:24:13 EDT 2016 #输出系统版本
x86_64 #输出硬件架构
4.os.environ () 系统的环境变量,输出一个字典形式,通过key值获取环境变量对应的value值
os.environ.get(‘PATH’) #获得指定的环境变量内容
info =os.environ
print(info)
print(info['PATH'])
print(info.get('PATH'))
print(os.environ.get('PATH'))
print(os.getenv('PATH'))
运行结果:
environ({'PATH': '/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/kiosk/.local/bin:/home/kiosk/bin' 45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;})
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/kiosk/.local/bin:/home/kiosk/bin
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/kiosk/.local/bin:/home/kiosk/bin
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/kiosk/.local/bin:/home/kiosk/bin
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/kiosk/.local/bin:/home/kiosk/bin
4.判断是否是绝对路径 os.path.isabs(文件名/目录名) ,不论文件是否真实存在都会作出判断
print(os.path.isabs('/tmp/haha')) #以‘/’开头,是绝对路径;
print(os.path.isabs('redhat.tex')) #不以‘/’开头,是相对路径;
运行:
True
False
5.生成绝对路径 #以绝对路径显示文件或目录,此处的文件或目录是绝对路径的时候不作改变,输出原内容;不是绝对路径的时候将当前所在位置的绝对路径添加到输入的文件或目录相对路径前,形成绝对路径
print(os.path.abspath('/tmp/haha'))
print(os.path.abspath('redhat.tex'))
运行结果:
/tmp/haha
/home/kiosk/PycharmProjects/python学习/redhat.tex
os.path.join(路径1,路径2) #将路径1和路径2连接起来,如果路径2是绝对路径就返回路径2
print(os.path.join(os.path.abspath('.'),'redhat.tex'))#将当前位置和redhat.tex 连接
print(os.path.join('/home/kiosk','redhat.tex'))
print(os.path.join('/home/kiosk','/redhat.tex'))
运行结果:
/home/kiosk/PycharmProjects/python学习/redhat.tex
/home/kiosk/redhat.tex
/redhat.tex
6.获取目录或文件名 os.path.basename(文件/目录路径)
filename = '/home/kiosk/PycharmProjects/python学习/redhat.tex'
print(os.path.basename(filename)) #获取文件名
print(os.path.dirname(filename)) #获取目录名
运行结果:
redhat.tex
/home/kiosk/PycharmProjects/python学习
7.创建目录 os.mkdir(文件名) os.mkdirs(目录/文件名)
os.mkdir('westos') ##建立westos 目录
os.makedirs('westos1/file1/file2') ###建立westos1递归目录
不能传归删除目录,只能从最底层开始删除
os.rmdir('westos1')
运行结果:
Traceback (most recent call last):
File "/home/kiosk/PycharmProjects/python学习/os模块.py", line 30, in <module>
os.rmdir('westos1')
OSError: [Errno 39] Directory not empty: 'westos1'
8.创建文件 删除文件
os.mknod(‘westos’) #.创建文件 当文件存在时出现报错
Traceback (most recent call last):
File "/home/kiosk/PycharmProjects/python学习/os模块.py", line 32, in <module>
os.mknod('westos')
FileExistsError: [Errno 17] File exists
os.remove(‘redhat’) #当文件不存在时出现报错
Traceback (most recent call last):
File "/home/kiosk/PycharmProjects/python学习/os模块.py", line 32, in <module>
os.remove('redhat')
FileNotFoundError: [Errno 2] No such file or directory: 'redhat'
9.文件重命名
os.rename(‘源文件名’,‘新文件名’)
os.rename('westos','redhat')
10.判断文件或目录是否存在,os.path.exists(文件/目录)
print(os.path.exists('today.ing'))
print(os.path.exists('redhat'))
运行内存:
False
True
11.分离后缀名和文件名,不论是否存在该文件都会分类
print(os.path.splitext('today.png')) #真实存在的文件
print(os.path.splitext('today.ing')) #不存在的文件
运行:
('today', '.png')
('today', '.ing')
12.将目录名和文件名分离
print(os.path.split('/home/kiosk/PycharmProjects/python学习/redhat.tex'))
('/home/kiosk/PycharmProjects/python学习', 'redhat.tex')