- file:文件路径名
- mode:文件打开模式
- buffering:文件缓冲
- encoding:文件数据流的编码
- errors:错误编码信息
![](https://img-blog.csdnimg.cn/96cfdd6b16024e0a92931188b91ac4b1.png)
![](https://img-blog.csdnimg.cn/b3493d61c75740a6874beb31cfa731f8.png)
2.file_stream.writelines(lines):lines可以是字符串,也可以是序列类型(列表,元组,字典,集合),但元素必须是字符串。没有返回值。
![](https://img-blog.csdnimg.cn/cd03b29c8a75424a90b18f6e98c89d9c.png)
![](https://img-blog.csdnimg.cn/45350911a2ca484e8472715f6185a8a8.png)
3.可以直接使用for循环遍历文件流对象,效果与readlines()一样,区别是readlines是一次性把内容读取到内存中,消耗很大,而for循环遍历文件流对象是逐行读入到内存
2.buffering参数:0表示关闭缓冲区,该操作只适用于二进制。1表示设置行缓冲模式,只能用于文本。大于1则表示缓冲区的大小
![](https://img-blog.csdnimg.cn/3fcc5bcf0f26460d83800bae3e6f6847.png)
![](https://img-blog.csdnimg.cn/728ff717f5fc41aead270171bd5aa516.png)
对文件读写进行错误处理
4.1 彻底掌握StringIO与BytesIO
StringIO
获取一个基于内存的流对象,在内存中对字符串进行读写操作
语法:StringIO(initial_value='',newline='\n'):initial_value用来传递一个初始值,默认为空字符串。newline用来定义换行符,默认\n。通过StringIO获取的对象与open具有相同的接口,都可以使用到文件流对象的方法(seek()、read()、write()等)。此外StringIO还提供了getvalue()方法,用来读取缓冲区的全部数据
例子:
BytesIO
类似StringIO,区别是对内存中的Bytes类型进行读写。执行encode()可以将字符串转换成bytes类型,执行decode()可以将bytes转换成字符串类型
语法:BytesIO([initial_bytes]):参数表示初始化的Bytes数据
例子:
5.1 使用json模块读取json文件
什么是json文件
全称JavaScript Object Notation,用于将JavaScript对象序列化成JSON格式的字符串
json数据格式
类似Python中的字典与列表,键名必须是字符串类型,键值可以是以下的类型
json的键值数据类型可以互相嵌套
Python中的JSON模块
1.json.dumps(obj,ensure_ascii=True):将数据对象序列化成json格式,obj是数据对象,ensure_ascii是判断数据对象是否ascii编码格式。返回一个json格式的字符串
2.loads(s):将json反序列化成Python中的数据对象。s表示将json文件中的文本或者Bytes类型。