文件和目录
1. os模块
需要引入os模块
1.1 os基本方法
函数名 | 函数值 |
---|---|
os.name | 获取当前的操作系统的类型nt->windows posix->unix 后者Linux |
os.environ | 获取操作系统中的环境变量 |
os.environ.get(“path”) | 获取path的环境变量 |
os.curdir | 获取当前的目录 |
os.getcwd() | 获取当前的工作目录 |
os.listdir() ** | 以列表的形式 返回当前目录的文件 |
os.mkdir() | 创建目录 |
os.rmdir() | 删除目录 |
os.rename(old,new) | 修改文件后者文件夹的名字 |
os.remove() | 删除文件 |
os.system(command) | 执行系统命令 |
os.walk(path) ** | 遍历目录 |
os.path.join(path1,path2) | 将path1和path2拼接成一个正常的路径 |
os.path.splitext() | 获取文件扩展名 |
os.path.isdir() ** | 判断是否是目录 |
os.path.isfile() ** | 判断是否是文件 |
os.path.exists() ** | 判断文件或者目录是否存在 |
os.path.getsize() ** | 获取文件的大小(字节) |
os.path.dirname() | 获取路径的目录名 |
os.path.basename() | 获取路径的文件名 |
os.path.abspath() | 返回文件的绝对路径 |
os.path.split() | 拆分路径 |
1.2 目录的遍历
- 深度优先
- 广度优先遍历
2. 单元测试和文档测试
###2.1 单元测试
作用:对一个函数,模块或者一个类进行正确性的校验工作
###2.2 文档测试
作用:可以提取注释中的代码执行
doctest严格Python交互模式下的写法
3 pillow图形库的使用
PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。官网地址:https://pillow.readthedocs.io/en/5.1.x/reference/index.html
由于PIL仅支持到Python 2.7,加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python 3.x,又加入了许多新特性,因此,我们可以直接安装使用Pillow。
Pillow常用的模块Image、ImageDraw、ImageFont。其中Image模块用于操作图像,ImageDraw用于绘图,ImageFont用于设定字体。
方法 | 参数 | 说明 |
---|---|---|
Image.new(mode, size, color=0) | mode用于设置是RGB或者RGBA,size设定宽和高,元组(width,height),color设定颜色,可以是‘#rrggbb’或者’red’或者(r,g,b)其中r,g,b是0-255的整数 | 创建画布 |
ImageDraw.Draw(im, mode=None) | im是画布,就是Image.new创建的画布,mode可省略 | 创建画笔 |
ImageDraw.point(xy, fill=None) | xy为设置点的坐标,可以设置多个点,格式[(x,y),(x,y)…]或者[x1,y1,x2,y2…]。fill是填充颜色 | 画点 |
ImageDraw.line(xy, fill=None, width=0) | xy同上,fill同上,width设定线宽 | 画线 |
ImageDraw.rectangle(xy, fill=None, outline=None) | xy设置长方形的对角(左上,右下)坐标,格式[(x1,y1),(x2,y2)], outline设定线的颜色,fill指的长方形内部填充颜色 | 画长方形 |
ImageDraw.arc(xy, start, end, fill=None) | xy设置同长方形,start开始角度,end结束角度,3点钟方向为0度,顺时针方向增加,fill内部填充色 | 圆弧 |
ImageDraw.text(xy, text, fill=None, font=None) | xy为文字左上角坐标,设置为元组(x,y),text要画的文字,fill指字体颜色,font设置字体 | 画文字 |
ImageFont.truetype(font=None, size=10, encoding=‘’) | font字体名称,size字体大小,encodeing字符串编码 | 设置字体 |
- 小练习:
import os
import os.path as path
#
print(os.name) #操作系统名称 nt->windows 7/8/10/
# print(os.environ) #系统环境变量,字典
# print(os.environ['path'])
# print(os.curdir) # . 相对路径
# print(os.getcwd()) #绝对路径
#获取目录下的内容(子目录和文件)
# print(os.listdir(r"C:\bj1812\base\15"))
# os.mkdir('a') #创建目录
# os.rmdir('a') #删除目录
# os.remove('test1.txt') #删除文件
# os.system("dir")
# os.system('calc.exe') #打开计算器
# for abs_path,child_path,files in os.walk(r'C:\bj1812\base\15'):
# print(abs_path)
# print(child_path)
# print(files)
#路径处理
print(os.path.join(r'C:\bj1812\base\15\code','1_os.py')) #路径拼接
#判断文件是否存在
if path.exists(os.path.join(r'C:\bj1812\base\15\code','1_os.py')):
print("文件存在")
else:
print("文件不存在")
print(path.isdir(r"C:\bj1812\base\15\code\1_os.py")) #判断是否是目录,是目录返回True
print(path.isfile(r"C:\bj1812\base\15\code\1_os.py")) #判断是否是文件
print(path.basename(r"C:\bj1812\base\15\code\1_os.py")) #从路径中获取文件名
print(path.dirname(r"C:\bj1812\base\15\code\1_os.py")) #获取路径中的目录部分
print(path.dirname(r"C:\bj1812\base\15\code")) #获取目录的父目录
print(path.abspath('1_os.py')) #获取文件的绝对路径
print(path.split(r"C:\bj1812\base\15\code\1_os.py")) #将路径分割为目录和文件两部分
print(path.splitext(r"C:\bj1812\base\15\code\1_os.py")) #将路径分割为文件部分和后缀部分