(一)读模式
1.read()
调用read()会一次性读取文件的全部内容
2.readline()
每次读取一行,自带换行功能,每一行末尾会读到\n
3.readlines()
一次性以行的形式读取文件的所有内容并返回一个list,需要去遍历读取
4.循环读取
file/a.txt 是一个可迭代的对象而已,可以循环读取文件中的内容,每次读一行
(二)写操作
1,write()
2.writelines()
(三)with
使用with方式操作文件,可以不用关闭文件,会自动关闭文件
with open(‘file/a.txt’)as file:
with open('file/a.txt')as file:
ret=file.read()
print(ret)
七、os模块
重命名文件: os.rename(旧文件,新文件)
删除文件:os.remove(test.txt) #删除文件 是目录的话报错
创建目录:mkdir() 生成单层目录
创建多级目录:os.makedirs(‘a\b\c’)
删除目录:os.rmdir(path) #删除一层空目录
删除多级目录:os.removedirs(‘a\b\c’) #删除时目录为空
获取当前所在目录:os.getcwd()
获取目录列表:os.listdir(path)
切换所在目录:os.chdir()
判断文件或者文件夹是否存在:os.path.exists(path)
判断是否为文件:os.path.isfile(‘cla.py’)
判断是否问目录:os.path.isdir(‘test’)
获取绝对路径:os.path.abspath(‘test’)
判断是否为绝对路径:os.pah.isabs(os.getcwd()) #判断当前路径是否为绝对路径
获取路径中的最后部分:os.path.basename(‘a//b//c’)
获取路径中的路径部分:os.path.dirname(file) #获取父目录部分
十四:设计与异常
一、异常
异常是指在语法正确的前提下,程序运行时报错就是异常
当Python脚本发生异常时我们需要捕获处理它,否则程序会终止操作
二、异常捕获
(一)基本语法
try:
...代码1...
...代码2...
...代码3...
except 异常类型:
...处理异常代码...
执行流程:程序从上往下执行,先执行try中的代码,如果代码1报错,则不会执行代码2和3,执行 excpetion中的异常代码。
如果try中没有报错,则不执行except中的代码。
try:
print('start...')
print(1/0)
print('end...')
except ZeroDivisionError:
print('try中的代码执行出错了就执行这里的代码')
print('程序结束了')
try:
print('aaaaa')
print(1/0)
print('bbbb')
except IndexError: #索引越界异常
print('程序出错了哈哈')
print('程序结束了')
(二)捕获多个异常
如果一段代码中可能会触发多个异常,我们可以写一个try 多个except来捕获多个异常
格式
多分支结构:
try:
执行的代码
except 异常类型:
捕获异常1
except 异常类型:
捕获异常2
except 异常类型:
捕获异常3
执行流程:
程序先执行try 如果代码没有出错 则不会执行except中的异常代码
如果try出错了 程序会依次和except中的异常类型比较 如果跑出的异常类型和except中的异常类型匹配则执行捕获异常代码 其他异常则不再执行
应用场景:适用于对不同异常做不容处理场合
元组结构:
try:
执行的代码
except(异常类型1,异常类型2,3):
捕获异常
执行流程:
try中的代码发生异常后 直接执行except的异常代码
应用场景:不管发生什么异常统一处理
使用多分支结构:
try:
print('start...')
lst=[12,3]
print(1/0)
print(lst[2])
print('end...')
except ZeroDivisionError:
print('除数为0了。。。')
except IndexError:
print('索引越界了。。。')
使用元组结构:
try:
print('start...')
lst=[12,3]
print(1/0)
print(lst[2])
print('end...')
except(ZeroDivisionError,IndexError):
print('程序出错了。。。')
(三)捕获所有异常
格式:
try:
...代码...
except:
捕获异常
流程:except后面可以不写异常类型,表示可以捕获所有的异常。
try:
...代码...
except Exception:
...异常信息...
流程:Exception是所有异常的父类,try抛出的异常,Exception都能捕获。
(四)获取异常信息描述
格式:
try:
执行代码
except 异常类型1 as 变量名:
执行异常...
流程:
变量名也可以叫做异常的对象,一般使用e来表示,e对象包含了异常信息的一些描述,我们可以根据描述做不同的处理。
try:
print(1/0)
except ZeroDivisionError as e:
print(e)
(五)else格式
格式:
try:
执行代码
except 异常类型 1 as 变量名:
执行异常
else:
代码
流程:
如果try中没有抛出异常则执行else中的代码,如果try中抛出了异常则不会执行esle中的代码。
try:
print('哈哈')
print(1/0)
except:
print('捕获到了异常')
else:
print('没有发生异常')