文章目录
- os模块的常用方法
- 返回操作系统类型`os.name`
- 返回操作系统详细信息`os.uname()`,仅针对于linux系统
- 返回系统环境变量`os.environ`
- 判断是否为绝对路径`os.path.isabs()`
- 生成绝对路径
- 获取目录名`os.path.dirname`、获取文件名`os.path.basename`
- 创建目录`os.mkdir()`、第归创建目录`os.makedirs()`、删除目录`os.rmdir()`
- 判断文件或目录是否存在`os.path.exists()`
- 分离文件名和其后缀名`os.path.splitext()`
- 分离目录名和文件名`os.path.split()`
- 遍历指定的目录`for ... in os.walk()`
os模块的常用方法
Python中os模块提供了非常丰富的文件和目录的处理方法。
返回操作系统类型os.name
import os
print(os.name)
返回值:posix表示linux操作系统,nt表示windows操作系统
返回操作系统详细信息os.uname()
,仅针对于linux系统
import os
info = os.uname()
print(info)
print(type(info))
# 操作系统
print(info.sysname)
# 主机名
print(info.nodename)
# 内核版本
print(info.release)
# 架构
print(info.machine)
结果:
返回系统环境变量os.environ
import os
print(os.environ)
print(os.environ.get('PATH'))
结果:
判断是否为绝对路径os.path.isabs()
import os
print(os.path.isabs('passwd'))
print(os.path.isabs('/tmp/passwd'))
结果:
生成绝对路径
有三种方法:
import os
print(os.path.abspath('passwd'))
print(os.path.join('/tmp','passwd'))
print(os.path.join(os.path.abspath('.'),'passwd'))
结果:
获取目录名os.path.dirname
、获取文件名os.path.basename
import os
filename = os.path.abspath('passwd')
print(filename)
print(os.path.dirname(filename))
print(os.path.basename(filename))
结果:
创建目录os.mkdir()
、第归创建目录os.makedirs()
、删除目录os.rmdir()
import os
os.mkdir('img')
os.makedirs('img/hellodir')
os.rmdir('img/hellodir')
os.rmdir('img')
注意:创建目录时只能创建不存在的,不能覆盖;删除目录时,目录必须为空才能删除。
- 创建文件
os.mknod()
、删除文件os.remove()
import os
os.mknod('a.txt')
os.remove('a.txt')
- 文件重命名
os.rename(oldname,newname)
import os
os.mknod('old.txt')
os.rename('old.txt','new.txt')
判断文件或目录是否存在os.path.exists()
import os
print(os.path.exists('passwd'))
print(os.path.exists('new.txt'))
分离文件名和其后缀名os.path.splitext()
import os
# 返回值 元组类型
print(os.path.splitext('/tmp/data.txt'))
print(type(os.path.splitext('/tmp/data.txt')))
结果:
分离目录名和文件名os.path.split()
import os
# 返回值 元组类型
print(os.path.split('tmp/passwd'))
遍历指定的目录for ... in os.walk()
import os
for root in os.walk('/var/log'):
# root 拿到所有目录(当然是有可读权限的才行),以元组的方式显示
print(root)
结果:
可以看到,格式为元组,第一个元素为目录名,第二个元素list显示的是其中的子目录,第三个元素list显示的是其中的文件。
import os
for root,dir,files in os.walk('/var/log'):
print(root)
print(dir)
print(files)
结果:
将元组的三个元素对应输出。
import os
for root,dir,files in os.walk('/var/log'):
for filename in files:
print(os.path.join(root,filename))
将目录名和文件名连接起来,结果: