python3学习笔记(11)python常用数据库和IO操作
Python常⽤库与IO操作
模块与包
在Python⾥⾯,每⼀个Python⽂件都是都可以成为⼀个模块,在⼀个包中可以包含多个Python⽂件,也就是多个
Python的⽂件。包与模块的关系具体如下:
创建文件夹 创建包 创建模块

同包之间的模块调用(只能调用函数或者变量)有两种方式:
# 包名为feichuan 包下的两个模块为www.py 和hhh.py
1.import package.module
import feichuan.hhh #先将整个模块导入 feichuan.hhh.fun() #调用hhh模块的函数 print(feichuan.hhh.age) #调用模块的变量
2.直接导入模块的所有函数和变量
from feichuan.hhh import *
fun()
print(age)
输出结果:
世界你好
28
3.不同包的不同模块的调用
此时是:chi.hhh调用了feichuan.hhh里面的函数和变量

4,包和包嵌套之间的调用
from package包.package包(嵌套的包).module模块 import *(所有)函数/变量/类
常用库
''' 在python里面,常用的库分为如下两类: 1、标准库:安装了Python的解释器,解释器内部自动带的 2、第三方的库,由很多的顶级程序员开发的,需要额外的安装 安装:pip3 install 第三方库的名称 pip3 install pytest pip3 install flask pip3 install django pip3 install requests pip3 install pymysql pip3 install xlrd 卸载:pip3 uninstall 第三方库的名称 '''
IO操作
IO库主要是对路径的处理
1.先导入IO库
import IO
# 获取当前路径 当前是在常用安装库的下面IO操作的模块中
print(os.path.dirname(__file__))
输出结果:
D:\code\testdev\常用库的安装
# 获取当前路径的上一级
print(os.path.dirname(os.path.dirname(__file__)))
输出结果:
D:\code\testdev
# 获取目录下所有的文件
# for item in os.listdir("d:/"):
# print(item)
获取当前的操作系统
import os #导入库 print(os.name)
路径的拼接——>自动获取路径——>读取文件
import os base_dir=os.path.dirname(os.path.dirname(os.path.dirname(__file__))) #获取文件所在的目录并定义为变量 userPath=os.path.join(base_dir,"test","user.txt") f=open(userPath,"r",encoding="utf-8") print(f.read()) f.close()
装饰器
- 在编程中有两个原则是要遵守的,也就是开放和封闭的原则
- 开发:对现有功能的拓展开放
- 封闭:已实现的功能代码不应该被修改
- 如果我们的代码中有N个函数,我们需要在这N个函数中增加或者减少一个功能,那么就意味我们需要把相同的代码增加多次或者减少多次,这样就很不符合编程开放跟封闭的原则,而且也不是一个好的编程风格,解决这样问题的思路就是装饰器
- 有一个登录,查看数据,查看钱包的代码如下:
View Code按照现在的代码,如果我们需要更改登录代码的判断,·那我们后面查看数据跟查看钱包的代码都要更改,我们现在需要装饰器解决这个问题
dict1={"isLogon":False} #标识 def outer(func): def inner(): #内部函数 if dict1["isLogon"]: #这里的函数就相当于if dict1["isLogon"]==True return func() else: print("请先登录") return inner #返回执行函数inner def logon(): '''登录''' username=input("输入账号:\n") password=input("输入密码:\n") if username=="tang" and password=="123": dict1["isLogon"]=True #满足如果条件的话,会把字典dict1的value值改为True print("登录成功") else: print("登录失败") @outer def order(): '''查看数据''' print("已授权查看后台数据") @outer def admin(): '''查看钱包''' print("已授权查看钱包") while True: a=int(input("1.登录 2.查看数据 3.查看钱包 4.退出\n")) if a==1: logon() elif a==2: order() elif a==3: admin() elif a==4: break- 执行的顺序为:
- 执行outer函数
- 执行内部函数inner
- 执行inner函数的返回值
- 执行inner函数里面的表达式
-
⼀旦结合装饰器后,调⽤fun其实执⾏的是inner函数内部,原来的fun被覆盖
-
⼀旦这个函数被装饰器装饰之后,被装饰的函数重新赋值成装饰器的内层函数


浙公网安备 33010602011771号