文件的作用在于能让数据保存下来,因为在程序中的数据是保存在运行内存中的,当程序奇数,内存会自动释放空间,空间中的数据也就消失了。所以,文件的作用是把数据存储到硬盘里。
文件操作
打开文件 - 操作文件内容(读写操作) - 关闭文件
打开文件的语法
open('file',mode = ' ', encoding = None) - 以指定的方式'r'打开指定文件'file'并返回指定对象
mode
文件的打开方式,决定打开文件后,对文件做什么操作,以及读写的数据类型
'r/rt/tr' - 以只读的方式打开文件,得到的内容是字符串
'rb/br' - 以只读的方式打开文件,得到的内容是二进制
'w/wt/tw' - 以只写的方式打开文件,写入的内容是字符串,但会先把原文件先清空
'wb/bw' - 以只写的方式打开文件,写入的内容是二进制,但会把原文件先清空
'a/at/ta' - 以只写的方式打开文件,写入的内容是字符串,不会清空原文件,在原文件末尾添加
'ab/ba' - 以只写的方式打开文件,写入的内容是二进制,不会清空原文件,在原文件末尾添加
encoding
只有操作字符串数据的时候才写,注意!!!!
读写操作
读:
文件.read() - 获取整个对象的内容,以字符串或者二进制的返回
文件.read() - 获取光标所在当前行的内容,以字符串或者二进制的形式返回
写:
文件.write(内容)- 将指定内容写入文件
f = open('files.test1.txt', mode = 'rt', encoding = 'utf-8')
另一种文件打开方式 with open
特点:打开文件,在作用域内操作文件,离开作用域文件自动关闭
写法 :
with open('files3.test3.txt', mode = 'wt', encoding = 'utf-8') as f:
注意:打开不存在的文件时:
以读的方式打开不存在的文件: 程序会出现FileNotFoundError异常;
以写的方式打开不存在的文件:不会出现异常,并且会创建一个空的文件。
open('files/test4.txt', 'r') # FileNotFoundError: [Errno 2] No such file or directory: 'files/test4.txt'
怎么做到数据的持久化?
1.将数据保存到本地文件中
2.需要这个数据的时候不是直接赋值而是从本地文件中取
3.数据发生变化后,将新数据更新到本地文件中
json数据
什么是json数据?
一种通用数据格式,几乎支持和所有高级语言的数据进行相互转换。
json数据的格式是什么?
1.一个json文件只能有一个数据;2.这个数据的格式必须是json支持的格式
转换方法?
#1.loads:将json数据类型转换成python数据类型
import json
res = json.loads('100')
print(type(res), res) # <class 'int'> 100
#2.dumps:将python数据类型转换成json数据类型
res = json.dumps([100, 'abc', True, None])
print(type(res), res) # <class 'str'> [100, "abc", true, null]