module:模块
模块的物理形式:以.py结尾的文件
模块说白了就是个别人写好的文件,我们可以把它调入到我们自己的代码中
python的程序构成
顶层文件:也是个模块,只调用别的模块(没有其他文件调用顶层文件)——项目中的调配工作(管理者)
模块:模块和模块之间可以相互调用
包
一个文件夹下,里面有init.py的文件,这个文件夹就叫做包
包:形式上和文件夹十分类似,也是一种目录结构
包:必须再 文件夹内创建:init.py—包含上述文件的文件夹,都叫做包
包是和模块息息相关, 访问一个模块:包.模块 ex: import matplotlib.pylot
另外一种访问模块:包名.子包名.模块名
如果一个模块有自己的名字,那包就是这个名字的姓
但这种调用,必须从头到尾写全了,所以可以用下面这种起别名的方法来简化调用
import matplotlib.pylot as hehe
#matplotlib.pylot.acorr()
hehe.acorr() 等价于上面的
但一旦用别名的话,就不能再用完整的路径调用,像此时再用 matplotlib.pylot.acorr()就是错误的
import matplotlib.pylot as hehe
#matplotlib.pylot.acorr()
hehe.acorr(123) #模块.acorr()
hehe=100 #重新定义hehe,hehe=100 —100
hehe.acorr(123)#报错 100.acorr()
form matplotlib.pylot import acorr as hehe
acorr() 正确,可以直接调用到指定属性
模拟命名冲突:
acorr= 100 acorr-覆盖为100,原有的acorr失去了原有的功能
acorr() 报错 100()
hehe()相当于调用acorr()
import random,math,MySQLdb
from pyecharts.charts import Bar,Line,Pie
import random as r,math as m,MySQLdb as db
from pyecharts.charts import Bar as b,Line as l,Pie as p
如何安装第三方的模块
官方的模块库: www.pypi.org
Pypi社区:全球性质的python社区,官方提供的社区,吸纳了所有的python已知模块
只要下载模块,就应该到Pypi社区
如何安装Python的第三方模块:requests为例
1.打开cmd
2.pip install requests
更快的安装方式:清华大学开源软件镜像站
https://pypi.tuna.tsinghua.edu.cn/simple
在命令行中 pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
文件
一些文件没有后缀,像系统中的host文件
文件没后缀是可以用的,有后缀是相当于说明这个文件是用什么打开的,属于哪个的。主要是认软件,认解析算法的
后缀的作用:表明解析方式
打开文件
open(file,mode=’r’,buffering=None,encoding=None,errors=None,newline=None,closefd=True)
file:文件的路径
mode:打开的方式
encoding:编码方式
open()返回的是IO流对象
IO对象,可以控制文件,获取文件的信息
开启文件资源-IO流
f=open(file=’hehe.txt’,mode=’r’,encoding=’utf-8’)
a=f.read() 读取文件内容
print(a) 打印文件内容
f.close() 关闭文件资源
f=open(file=’E:\技能-小学期python\hehe.txt’,mode=’r’,encoding=’utf-8’)
#file:相对路径:相对于当前路径的路径 绝对路径从盘符(挂载点)开始的路径
a=f.read() 读取文件内容
print(a) 打印文件内容
f.close() 关闭文件资源
#如果文件的路径相对于当前目录不会更改,相对于计算机环境可能更改-使用相对路径
#如果文件的路径无论当前目录还是计算机环境都不改变—绝对路径
文件模式
r只读,w只写(覆盖写),a:只写(追加写)
rb以二进制形式只读 wb以二进制只写 ab:以二进制形式追加写
open? 查看帮助
f=open(‘hehe.txt’,’r’,encoding=’utf-8’)
print(f.read())
f.close()
f=open(file=’hehe2.txt’,mode=’w’,encoding=’utf-8’)
f.write(‘白日依山尽,\n黄河入海流\n’)
f.close()
文件里面为
白日依山尽,
黄河入海流
f=open(file=’hehe2.txt’,mode=’a’,encoding=’utf-8’)
f.write(‘欲穷千里目,\n更上一层楼’)
f.close()
文件里面为
白日依山尽,
黄河入海流,
欲穷千里目,
更上一层楼
文件对象的属性和方法
1.closed:判断IO流是否已经关闭
f=open(file=’hehe2.txt’,mode=’r’,encoding=’utf-8’)
print(f.read())
f.close()
print(f.colsed) 最后结果是True
2.mode
f=open(file=’hehe2.txt’,mode=’r’,encoding=’utf-8’)
print(f.mode) 返回当前的打开模式
print(f.name)
f.close() 关闭流,释放资源
结果最后为
r
hehe2.txt
4.close()
关闭文件流,IO流
文件的关闭是极其重要的:IO流在计算机是一种珍贵的资源,使用完毕后,要及时关闭释放,目的:为了给别的程序留下IO空间
5.read()
f=open(file=’hehe2.txt’,mode=’r’,encoding=’utf-8’)
#print(f.read()) 默认:将文件中的所有内容都读取出来
print(f.read(2)) 读取2个字符
print(f.read(3)) 继续读取3个字符,在读取前2个字符的基础上
print(f.read(2)) 输出的是,和换行符(占用一个字符)
f.close()
print(f.readline) #默认只读取一行数据
print(f.readline(3)) 读取这一行当中的前3个字符 给定字符数量,按照字符数量读取
print(f.readline(2)) 在读取前三个基础上,继续读两个
print(f.readline(40)) 如果给定的字符,超过本行剩余的字符数量,最多只能读到行末
f=open(file=’hehe2.txt’,mode=’r’,encoding=’utf-8’)
print(f.readlines()) 把数据以列表的形式全部打印出来
write
f=open(file=’hehe3.txt’,mode=’r’,encoding=’utf-8’)
f.write(‘我爱学习’)
f.close()
f=open(file=’hehe3.txt’,mode=’r’,encoding=’utf-8’)
f.writelines([‘我爱学习\n’,’我爱祖国\n’])
f.close()
