异常

今天学习了os模块中的一些操作,常用模块有: os模块 os.path模块 shutil模块

os.remove(file) --------- 删除一个文件
rename(name1,name2) --------- 文件重命名
os.mkdir(name) --------- 创建文件夹
os.makedirs(‘m/n’) --------- 创建文件夹
os.getcwd() --------- 获取当前目录
os.chdir("../") --------- 改变默认目录
os.listdir("./") --------- 获取目录列表
os.rmdir(name) --------- 删除空文件夹
shutil.rmtree( src ) --------- 递归删除一个目录以及目录内的所有内容

批量重命名代码练习:

import os
import os.path
#输入完整路径
path = input('输入路径:')
#列出所有内容
ls = os.listdir(path)
#切换工作目录
os.chdir(path)
#遍历
for i in ls:
    #判断是否是文件
    if os.path.isfile(i):
        num = i.rfind('.')
        if num!=-1:
            newName = i[:num]+'-new'+i[num:]
            #重命名
            os.rename(i,newName)

然后是 异常 相关知识

path = input('输入文件的路径:')
print('1......')
content = None
try:
    print('2......')
    content = open(path,'r',encoding='utf-8').read()
    a = 10/0
    print('3......')
except (FileNotFoundError,NameError,ZeroDivisionError) as ex:
    print('4......')
    print('输入的路径不存在')
    print(ex)
print('5......')
print(content)

python中只有函数里和类里有作用域
其它都没有,这里的ex是局部变量,其它都是全局变量

开发的时候建议,捕捉异常要写的更详细。
但是一般直接用Exception。简单省事。
如果需要写很多异常类的描述,按照从小到大的顺序。
因为有一个捕捉到了异常。不会再被捕捉了。

try:
    num = 10/0
except Exception as ex:
    print(ex)

try except 之间写可能出现异常的代码
except else 之间对异常的处理
else里没错的时候的处理

path = input('输入文件的路径:')
try:
    content = open(path,'r',encoding='utf-8').read()
except Exception as errorMsg:
    print('产生错误了:%s'%errorMsg)
else:
    print(content)
print('over...')

finally:无论是否有异常,finally里代码都会执行
有一些资源使用完毕之后,需要关闭释放资源。
无论是否有异常,都得关闭,那么这样的代码可以写到finally中

    try:
        pass
    except Exception as ex:
        pass
    else:
        pass
    finally:
        pass

嵌套:

import time
try:
    #f = open('test.txt')
    f = open(r'C:\Users\Administrator\Desktop\xx.txt')
    try:
        while True:
            content = f.readline()
            if len(content) == 0:
                break
            num=1/0 #模拟一个异常
            #time.sleep(2)
            print(content)
    #except:
        #print('except...')
    finally:
        f.close()
        print('关闭文件')
except:
    print('没有这个文件')

函数的嵌套:

def test1():
    print("----test1-1----")
    try:
        print(num)
    except:
        print('test1  except......')
    print("----test1-2----")
def test2():
    print("----test2-1----")
    test1()
    print("----test2-2----")
def test3():
    try:
        print("----test3-1----")
        test1()
        print("----test3-2----")
    except Exception as result:
        print("捕获到了异常,信息是:%s"%result)
    print("----test3-2----")
test3()
#print("------华丽的分割线-----")
#test2()

你可能感兴趣的:(异常)