1.路径处理
1.找模块:sys.path
- import sys
- print(sys.path)
复制代码

- 1.理解
- - 1.是python去查找包或模块
- - 2.项目开始根目录,python内置的目录
- - 3.虽然说python的安装目录下也可以存放我们写的模块,但是不建议(太多了,不大好找)
- - 4.如果以后你发现模块导入不了了 ,可以使用下sys.path
- - 5.返回的是一个数组
- - 6.用的时候需要导入sys:import sys
- - python的目录,主要放外部的库,或者第三方的模块
复制代码
- 2.两种导包的方法再去找
- python学习交流Q群:903971231####
- - 1.from..module ...import 方法、变量等
- - from python_basic.class10_路径.pac01.module_012 import a
- print(a)
- print(sys.path)
- - 2.from pac ... import module
- - from python_basic.class10_路径.pac01 import module_012
- print(module_012.a)
- print(sys.path)
复制代码

2.获取文件的路径
- 1.获取绝对路径os.path.abspath(file)
- - import os
- # 获取绝对路径
- # 固定的写法
- # file 表示运行的文件的名称
- abs_path=os.path.abspath(file)
- print(abs_path)
- import os
- # 当前文件的绝对路径
- abs_path=os.path.abspath(__file__)
- print(abs_path)
复制代码
- 2.获取文件的目录路径
- - 1.os.path.dirname(file)
- - 不建议用
- # 获取文件的目录
- dir_name = os.path.dirname(__file__)
- print(dir_name)
复制代码

- 2.os.path.dirname(abs_path)
- - 建议用
- - dir_name1 =os.path.dirname(file)
- dir_name =os.path.dirname(abs_path)
- abs_path =os.path.abspath(__file__)
- dir_name =os.path.dirname(abs_path)
- print(dir_name)
复制代码
- 3.应用场景
- 例子:假设若需要打开另外一个包pac01下的demo.txt
- 1.思路
- 1.获取当前文件的绝对路径
- abs_path=os.path.abspath(file)
- 2.获取当前文件的目录路径
- dir_name =os.path.dirname(abs_path)
- 3.当前文件的目录路径和pac01进行拼接
- 1.推荐方法
- txt_file_path=os.path.join(dir_name,“pac01”,“demo.txt”)
- PS一般来说,是通过某个文件去获取项目的跟路径
- abs_path = os.path.abspath(__file__)
- dir_name =os.path.dirname(abs_path)
- txt_file_path=os.path.join(dir_name,"pac01","demo006.txt")
- with open(txt_file_path,encoding="utf-8") as f:
- print(f.readlines())
复制代码
 - python学习交流Q群:903971231###
- - # print(dir_name+'/pac01/demo.txt')
- # print(dir_name+r'\pac01\demo.txt')
- - 这种写法不建议,因为不同的系统,windows一般是\,mac是/,改来改去麻烦
- - 4.打开文件并读取
- - with open(txt_file_path,encoding="utf8") as f:
- print(f.read())
- PS:获取文件路径时,路径或文件不一定要真实存在,了解这即可
复制代码
3.工作目录
- 1.os.getcwd():获取当前的工作目录
- 1.你在哪个目录下运行python程序,输出的是哪个路径

- 2.os.chdir():切换工作目录
- 3.os.mkdir(“test_dir”)
- 创建工作目录
- os.mkdir(“test_dir”)
- 4.os.rmdir()
- 删除工作目录
- os.rmdir(“test_dir”)
- 5.listdir()
- 获取当前路径下的目录列表,返回列表格式数据


- 6.os.path.isfile()
- 7.os.path.isdir
- print(os.path.isfile(__file__))
- print(os.path.isdir(__file__))
复制代码

2.异常处理
1.异常理解
- 1.程序如果遇到异常,不会再执行
- 2.写代码的人不能让程序遇到异常就终止运行
- 1.捕获他catch
- 改变程序遇到异常的行为,异常处理,希望程序不要终止,按照我说的办,叫做异常的捕获
- 2.抛出他raise
2.异常处理
try:
你要执行的可能发生异常的代码
except:
程序发生异常后,你希望程序做的事情- - 1.程序先执行try 当中的代码
- - 2.但是一旦try当中某个代码报错,会执行跳到except,try剩下的代码不会执行
- - 3.例子:
- - 1.except捕获了
- try:
- print("正在运行代码")
- a = 1 / 0
- print(f"计算结果:{a}")
- except:
- print("1不能除0,你需要改除数")
- print("其他的程序")
复制代码
输出的结果是:

 - “”"
- - 2.异常类型的捕获
- - 1.没有捕获该类型的情况
- - # try:
- try:
- print("正在运行代码")
- a=1/0
- print(f"计算结果:{a}")
- except IndexError:
- print("1不能除0,你需要改除数")
- print("其他的程序")
- # 只会打印 正在运行代码,因为报错了,无法捕获ZeroDivisionError异常,
复制代码
 - try:
- print("正在运行代码")
- a=1/0
- print(f"计算结果:{a}")
- except ZeroDivisionError:
- print("1不能除0,你需要改除数")
- print("其他的程序")
复制代码
输出的结果是:

- 3.打印异常信息Exception(或某种类型的报错) as e
- - 1.单个异常的
- - # 打印异常信息,一般用此方法
- try:
- print("正在运行代码")
- a=1/0
- print(f"计算结果:{a}")
- except ZeroDivisionError as e:
- print(e)
- print("其他的程序")
复制代码
输出的结果是:

 - try:
- lst = ['yz', 'addd']
- lst[3]
- a=1/0
- except ZeroDivisionError as err:
- print(err)
- print("hello word")
- # IndexError: list index out of range
- - # 捕获多个时
复制代码
方法1:
- try:
- {"name":"zhangsan","age":18}['name1']
- lst = ['yz', 'addd']
- lst[3]
- a=1/0
- except (ZeroDivisionError,IndexError,KeyError) as err:
- print(err)
- print("hello word")
复制代码
打印的结果:

方法2
- try:
- a = 1 / 0
- {"name":"zhangsan","age":18}['name1']
- lst = ['yz', 'addd']
- lst[3]
- except ZeroDivisionError as err:
- print(err)
- print("ZeroDivisionError")
- # 抓到这个异常
- # division by zero
- # ZeroDivisionError
- except IndexError:
- print("IndexError")
- # 抓到这个异常 IndexError
- except KeyError:
- print("KeyError")
- # 抓到这个异常 KeyError
复制代码
打印的结果:
 - try:
- 1/1
- print("正常执行的代码")
- except ZeroDivisionError as e:
- print("不能除以0")
- finally:
- print("无论正常与否,都会执行的代码")
复制代码
打印的结果:

 - - 2.异常的
- try:
- 1/0
- print("正常执行的代码")
- except ZeroDivisionError as e:
- print("不能除以0")
- finally:
- print("无论正常与否,都会执行的代码")
复制代码
打印的结果:
 - - # 假设demo.py被打开了
- import io
- try:
- f=open("demo.py",'a')
- f.read()
- except io.UnsupportedOperation as e:
- print("文件读取失败")
- print(e)
- finally:
- f.close()
- """
复制代码
打印结果:
文件读取失败- not readable
- “”"
- 2.异常的抛出
- 例子1:
- def adult_add(a,b):
- """两个大于等于18的数相加;小于18的不能相加"""
- if (a<18) or (b<18):
- raise ValueError("参数必须大于或等于18")
- c=a+b
- return c
- adult_add(18,19)
- adult_add(3,4) #ValueError: 参数必须大于或等于18
- print("函数执行完毕")
- """
复制代码
最后
今天这篇文章到这里就结束了,喜欢的小伙伴记得点赞收藏。关于这篇文章有不懂的地方记得随时提问
哟!!!下次见~~~

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |