导入模块原理
当代码执行到导入模块的时候,系统会自动进入指定模块,将模块中的代码全部执行一遍
如果在同一个程序中,同一个模块导入多次,对应的代码只会执行一次
包的使用
1.什么是包
包含(__ init__.py)文件的文件夹
2.怎么使用包中的模块中的内容 —怎么导入
1)import 包名 —直接导入包(这个导入方式在没有定制__ init__.py文件的时候没有意义)
2)from 包名 import 模块名1,模块名2,…
3)import 包名.模块名
4)from 包名.模块名 import 变量名,变量名2,…
3.init文件的使用
import 包名 — 通过包名可以使用的是init文件里面的内容
文件操作
1.数据持久化
计算机的存储空间分为两种:运行内存,硬盘
1)存储在运行内存的数据特点:运行程序的时候存储,程序运行自动销毁。(运行内存中的数据最带哦或一个应用程序的一个盛宁周期,一个数据存储后在下一次运行程序的时候无法使用)
程序中产生的数据默认都是默认存储在运行内存中。
2)存储在硬盘中的数据的特点:一直存在,直到认为删除或者硬盘损坏 ----持久
数据持久化----就将数据以文件的形式存储到硬盘中
如果程序运行过程中产生得数据在下一次运行程序的时候还要用,那么这个数据就需要持久化。
2.常见持久化工具 — 文件
数据库,excel文件,csv文件,json文件,plist文件,css文件,qss文件
3.文件操作 ----操作文件的内容
文件操作步骤:打开文件 ->操作文件(读,写)-> 关闭文件
1)打开文件
open(file,mode=‘r’,*,encoding=None)–以指定的方式打开指定文件返回一个文件对象
file - 字符串;需要打开的文件的路径(路径分为绝对路径和相对路径)
绝对路经:文件在计算机中的全路径(文件),比如:window,路径从盘开始
相对路径:只有当需要打开的文件在工程目录下的时候才能使用相对路径
用.表示当前目录(当前目录指的是当前写代码的文件所在的目录)
用…表示当前目录的上层目录
2)参数mode — 确定打开方式
mode的值决定:1.打开文件后能干什么(能读还是能写)2.操作文件的时候数据的类型(字符串,二进制)
mode的值由两组值组成:
第一组值:能读还是能写
r — 只读
w — 只写;会清空原文件
a — 只写;追加原文件后面(会保留原文件的内容)
注意:以读的方式打开不存在的文件程序会报错,以写的方式打开不存在的文件不会报错,并且会创建一个文件
第二组值:数据类型是二进制还是字符串
t—字符串(str)
b—二进制(bytes)
注意:打开文本文件用t,打开非文本文件只能用b
3)参数encoding—文本文件编码方式
文本创建的时候采用的是什么编码方式,打开的时候就用哪种方式
注意:如果以b的方式打开文件,不能给encoding赋值
文件读写和关闭
1.读文件
文件对象.read() —从读写位置开始,读到文件末尾(获取整个文件内容)
文件对象.readline()----读一行(只针对文本文件有效)
2.写操作
文件对象.write(数据) ----将数据写入文件中
f=open('test_file/student.txt','a')
result=f.write('\n你好')
print(result)
3.关闭文件
文件对象.close()
数据持久化
1.怎么坐到数据持久化
第一步:确定需要持久化的数据是什么
第二步:创建文件保存需要持久化的数据,并且确定文件内容的初始值
第三步:在程序中需要这个数据的时候,从文件中读数据出来
第四步:当这个数据发生改变,必须将最新的数据写入到文件中