该模块提供了一些方便使用操作系统相关功能的函数。 如果你是想读写一个文件,请参阅 open(),如果你想操作路径,请参阅 os.path 模块,如果你想在命令行上读取所有文件中的所有行请参阅 fileinput 模块。 有关创建临时文件和目录的方法,请参阅 tempfile 模块,对于高级文件目录处理,请参阅 shutil 模块。
1、 os.path
该模块主要是针对路径的操作。
- os.path.exists(path)
判断路径是否存在,存在返回True,不存在返回False
import os
a = 'D:\hahh'
print(os.path.exists(a))
# 结果
False
- os.path.abspath(path)
返回绝对路径,主要有引号
import os
print(os.path.abspath('.'))
# 结果
D:\keras_code\YOLOv3
- os.path.dirname(path)
返回文件路径,不包含文件名。
import os
print(os.path.dirname('D:\\keras_code\\YOLOv3\\test.txt'))
# 结果
D:\keras_code\YOLOv3
- os.path.basename(path)
返回文件名
import os
print(os.path.basename(r'D:\keras_code\YOLOv3\test.txt'))
# 结果
test.txt
- 类似这种:
命令 | 说明 |
---|---|
os.path.isfile | 判断是否是文件 |
os.path.isdir | 判断是否是目录 |
os.path.isline | 判断是否是个链接文件 |
os.path.ismount | 判断是否是挂载点 |
os.path.isabs | 判断是否是绝对路径 |
- os.path.join(path1,path2)
把 path1、path2文件或目录合并成一个路径
2、os
os 模块在运维工作中是很常用的一个模块。通过os模块调用系统命令。os模块可以跨平台使用。
在 import os 的时候,建议使用import os而非 from os import *
- os.name()
判断系统类型
import os
print(os.name)
# linux和Unix系统会返回`posix`
# windows 系统会返回`nt`
- os.system()
执行系统命令的模块,返回命令执行的状态码,开启一个子shell执行命令
import os
cdDir = os.system('cd testDir')
print(cdDir)
# 结果为 0
# 表示命令执行成功,否则为失败
- os.popen()
popen也是去执行一个命令,不过相比system(cmd),os.popen(command [, mode=‘r’ [, bufsize]]),参数更多,而且是开启一个管道去执行。
command :执行的命令
mode: 模式权限可以是’r’(默认)或’w’
buffering: 0意味着无缓冲;1意味着行缓冲;其它正值表示使用参数大小的缓冲(大概值,以字节为单位)。负的bufsize意味着使用系统的默认值,一般来说,对于tty设备,它是行缓冲;对于其它文件,它是全缓冲。如果没有改参数,使用系统的默认值。
import os
commod = 'mkdir newdir'
a = os.popen(commod)
print(a)
# <os._wrap_close object at 0x00000129A7F56C88>
print(type(a))
# <class 'os._wrap_close'>
- os.listdir(path)
用于返回指定的文件夹包含的文件或文件夹的名字的列表
import os
dirs = os.listdir(os.getcwd()) # 获得当前目录中的内容
print(dirs)
- os.getcwd()
返回当前绝对路径,返回类型为str
import os
a = os.getcwd()
print(a)
- os.chdir(path)
改变当前路径
import os
print os.getcwd()
os.chdir(/tmp/aaa)
print(os.getcwd())
- os.mkdir()
mkdir(path [, mode=0755])
默认权限是0755
如果目录已存在,会异常OSError
- os.remove(path)
删除文件,只能删除文件
- os.rmdir(path)
删除目录,只能删除目录