疑点难点:
1 什么是文件流?
就是一条河流
2 内存缓冲区的优缺点
优点:提高读写性能
缺点:影响数据的实时性显示,断电会损失数据
3 换行符也是一个字符,使用文件指针时也占一个位
4 如何读取大文件?
一块一块读取(read)使用count参数,或者逐行读取(readline)
5 json文件的作用?
将配置信息写到json文件(配置文件),解耦合!
不需要将配置信息写道程序里,便以后续维护
6 json格式
7 异常处理的作用?
让程序更加健壮!
8 导入模块的作用?
测试或者执行该模块
9 什么是模块名?
不带后缀的文件名就是模块名
10 模块查找原则?
就近原则,先在当前目录查找,再去pythonPATH的路径查找,再去python目录/系统目录查找
最后都查找不到,就会报错。ModulesNotFoundError
11 为什么要将常用的功能分离到一个模块中?
解耦合,增加其维护性、可扩展性、复用性
12 模块导入的别名问题
先查找模块是否存在sys.modules中,如果存在就不需要再导入,否则继续查找导入。
找到后,将模块名作为键名加入sys.modules字典中,默认赋值给模块名作为变量名。
13 三层架构是什么?
14 什么是顶层package?
15 绝对导入和相对导入
16
上课语录:
1 正则表达式本质是字符串
2 什么是空白字符?
3 贪婪匹配,是相对子级匹配来说的
4 正则表达式的代码复用
5 什么是堆栈信息?
简单理解为调用链
6 错误调试,日志记录
7 日志输出的标准级别,控制不同级别的错误输出
8 什么是日志滚动?
思考题:
知识点汇总:
什么是文件
1 记录信息的信息集合
2 计算机文件是存储在硬盘上的
3 查找计算机的文件需要知道文件名和存储的绝对路径
4 计算机文件的本质是一个字节序列
5 计算机文件按存储类型可以分为文本文件、二进制文件
windows文件的命名规则
1 命名空间:西文字符可以是1到256个,汉字符是1到128个
2 文件名可以有扩展名,也可以没有,通常文件名与扩展名中间用符号“.”进行分割
3 文件名可以由字母、数字、汉字或~、!、@、#、$、%、^、&、_、-、{}等组成
4 文件名可以存在空格,也可以有多于一个的“.”号
5 文件名不能出现以下字符:\、/、:、、?、<、>、|
6 windows文件名不区分英文字母的大小写
linux文件名的命名规则
1 除了/符号以外,所有字符都合法
2 特殊字符最好不要使用,例如@、#、¥、&、()、-、空格等
如果使用空格作为文件名时,执行命令时容易出错。
3 避免使用“.”作为文件名的第一个字符,因为linux系统中将以“.”开头的文件作为隐藏文件
4 linux系统区分大小写,所以文件命名也区分大小写
5 linux文件名后缀无意义,但是为了方便识别应定义后缀名(如.py等)
6 在x86_64 linux下,文件名的最大长度为255个字符,文件路径的最大长度为4096个字符
windows文件的绝对路径
1 绝对路径是指从盘符开始的路径,盘符是硬盘的标识符
2 绝对路径的规则:盘符\目录名\文件名
3 反斜杠符号“\”是路径中的分隔符
linux文件的绝对路径
1 绝对路径是指从正斜杠“/”开始的路径,正斜杠是linux系统的根目录
2 绝对路径的规则:/目录名/文件名
3 正斜杠符号“/”是路径中的分隔符
文件的相对路径
1 相对路径是指从当前的文件目录作为起点,去查找另一个文件的路径
2 使用两个特殊的符号“.”、“..”,“.”表示当前目录,“..”表示父目录
3 绝对路径与相对路径各有优缺点。
绝对路径更加直观,通过路径名就可以知道文件的具体位置
相对路径在写法上更加简便、灵活
文本文件和二进制文件
1 文本文件是指任意字符构成 的文件
文件的基础读写操作
1 文件流对象
2 open函数
3 open函数的参数
mode 打开的模式,读写
buffering 缓冲区,是指内存当中的缓冲区
文件的打开模式
1 r
2 w 该模式打开文件,如果文件存在,会将文件内容全部删除,如果不存在,就创建文件
3 x 该模式打开文件,是创建一个新的文件,如果存在,会报错(可以用来检查文件是否存在)
4 a 该模式是追加写,不清空文件内容
5 b 该模式是以二进制模式对文件进行读写操作
6 t 文本模式,默认以文本模式对文件进行读写操作
7 t+ 读写混合模式
文件的读写混合模式
1 r+模式
2 w+模式
3 a+模式
对文件进行写操作
1 write:file_stream.write(text),形参text表示写入文件的内容,text必须是一个字符串类型
返回值为写入的字符数。可以在文件中写入多行,在数据后面加换行符“\n”表示一行
2 writelines: file_stream.writelines(lines),这里的lines既可以是字符串类型,也可以是序列类型。
如果是序列类型,元素必须是字符串。writelines方法同样要手动加换行符“\n”
writelines方法没有返回值
3 read :file_stream.read(count),这里的count表示读取文件中的多少个字符,可以不传递值,
不传递值时,python尽可能地读取文件中所有的数据。对文件读取时,采用r模式。
4 readlines:file_stream.readlines(),
*StringIO的主要操作方法
1
