学习python入门基础——模块、包
一、概念
模块就是.py文件/.pyc文件;包就是包含__init__.py文件
二、模块导入
1、分类:自定义、第三方库、python自带
2、导入方式
2.1、import 模块名
1)导入的是py文件
import random #随机数
print(random.randint(1,10)) #python自带
import homework0413 #导入.py文件
print(homework0413.read_str_change_dict()) #使用.py文件中的方法
2)查看python默认找包的目录:
import sys
print(sys.path)
2.2、from 模块名 import 类、变量、函数
from homework0413 import read_str_change_dict
print(read_str_change_dict())
2.3、from 模块名 import *
from homework0413 import *
print(read_str_change_dict())
2.4、from 项目名.包名.py文件名 import *
from PycharmProjects.pythonProject.homework0413 import *
print(read_str_change_dict())
三、os模块(路径处理)
先导入os模块,import os
1、路径获取
1.1、os.path.dirname(__file__):返回当前运行的文件所在的路径(绝对路径)
import os
res_path=os.path.dirname(__file__) #返回当前运行的文件所在的路径(绝对路径)
print(res_path)
1.2、os.path.abspath():返回指定文件的绝对路径
import os
res_path=os.path.abspath('1.txt') #返回指定文件的绝对路径
print(res_path)
1.3、os.getcwd():返回当前进程的工作目录(相当于Linux的pwd)
import os
res_path=os.getcwd() #返回当前进程的工作目录(相当于Linux的pwd)
print(res_path)
2、路径拼接:os.path.join(path1,path2,path3)
1.#不加斜杠,会自动生成
import os
path1='test'
path2='api'
path3='login.html'
res_path=os.path.join(path1,path2,path3)
print(res_path) #返回test\api\login.html
2.#手动在路径后面加\,当有\时需要再加\来转义
import os
path1='test\\'
path2='api\\'
path3='login.html'
res_path=os.path.join(path1,path2,path3)
print(res_path) #返回test\api\login.html
3.# 手动加\在路径前面,会找到\开始的路径进行拼接,将\前面的舍弃掉
# 当有多个\时,会从最后一个\开始路径拼接
import os
path1=r'\test'
path2=r'\api'
path3='login.html'
res_path=os.path.join(path1,path2,path3)
print(res_path) #返回\api\login.html
3、目录切换:os.chdir(path)
import os
re=os.chdir('D:/Pycha
print(os.getcwd())
res_path01=os.path.ab
print(res_path01)
4、目录删除:os.rmdir(path)
os.rmdir('1.txt')
四、魔术方法
1、__file__:获取运行文件或模块的绝对路径
import os
print(os.__file__) #打印出:D:\Python\Python39\lib\os.py
2、__name__:获取函数名
import os
print(os.__name__) #打印出:os
3、__doc__:获取函数的多行注释
import os
print(os.__doc__)
4、__dict__:获取对象的所有属性
import os
print(os.__dict__)
五、异常处理
1、概念:程序执行过程中遇到了错误,无法继续执行,会出现一些错误提示
2、python常见的异常类型
1)AttributeError:属性不存在
2)NameError:找不到变量
3)IndexError:下标越界
4)SyntaxError:语法错误
5)KeyError:key不存在
六、异常捕获
1、捕获错误代码
try:
xxx(可能会报错的代码,不报错执行)
except:
xxx(报错的时候执行)
else:
xxx(不报错执行)
finally:
xxx(一定执行)
1.1、写法一
try:
print(num) #可能报错的代码
print('不报错执行')
except:
print('报错执行')
1.2、写法二
try:
print(num) #可能报错的代码
print('不报错执行1')
except:
print('报错执行')
else:
print('不报错执行2') #except和else只会执行其中一个
1.3、写法三
try:
print(num) #可能报错的代码
print('不报错执行1')
except:
print('报错执行')
else:
print('不报错执行2')
finally:
print('必执行的代码')
2、捕获错误原因
try:
xxx(可能会报错的代码,不报错执行)
except Exception as e:
xxx(报错的时候执行)
else:
xxx(不报错执行)
finally:
xxx(一定执行)
3、手动捕获: raise Exception('自定义异常')
try:
print(num)
except Exception as e:
raise e
import traceback
try:
if 2>1:
raise Exception('自定义异常')
except Exception as e:
print(e,traceback.print_exc())