文件处理
使用文件可以做数据的持久化(本地化)。 包括数据库文件,txt、json,plist,二进制文件等等。
在python中的文件操作很简单,是通过一个内置函数open()实现的。
""" open(file, mode='r', encoding=None, errors=None) open函数主要接收两个参数,需要打开的文件file, 打开方式mode,encoding编码方式, 如果需要忽略少数的如编码之类的错误 可以传入errors="ignore" w 以写方式打开, 文件不存在时创建新文件 a 以追加模式打开,文件不存在时创建新文件 r+ 以读写模式打开 w+ 以读写模式打开 (参见 w ) a+ 以读写模式打开 (参见 a ) rb 以二进制读模式打开 wb 以二进制写模式打开 (参见 w ) ab 以二进制追加模式打开 (参见 a ) rb+ 以二进制读写模式打开 (参见 r+ ) wb+ 以二进制读写模式打开 (参见 w+ ) ab+ 以二进制读写模式打开 (参见 a+ ) """ f = open(r"./python招聘信息.txt","r",encoding="utf-8") f.read() #以字符串的形式,一次性返回所有文件内容 f.readline() # 读一行,调用一次,读取一行 f.readlines() #返回一个列表,列表的元素是文件中每一行的内容 #f.write() 当以写的形式打开文件时,可以使用该方法,需要传入写入的内容 f.flush() #当需要更新文件的内容时,调用该方法刷新缓存,立即将数据写入文件 f.close() #关闭文件,如果需要向文件中写入内容,在没有flush方法时,调用次方法才能将内容写入
json数据转换
json数据本身是文本数据;json文件就是后缀是.json的文件, 并且文件内容必须满足json格式的要求
1.json格式
a.一个json对应一条数据
b.json中的数据必须是json对应的数据类型
数字类型(number) --> 所有的数字,包含整数和小数,例如:100, 12.5
字符串类型(string) --> 用双引号括其的数据,例如:"abc", "你好,世界!"
数组(array) --> 相当于python中列表, 例如: [100, 230, "abc", "你好"]
字典(dictionary) --> 相当于python中的字典, 例如:{"a": 100, "b":[1, 2, 3, 4, 5], "c":{}}
布尔 ---> true和false
null --> 相当于None, 用来表示空
2.python对json的支持
python中专门提供了一个json模块,用来处理json数据
load(json文件对象) ---> 将json文件的内容读出来,并且将内容转换成python对应的数据类型
dump(内容, json文件路径) --> 将指定的内容,以json格式写入到指定的json文件中
loads(json格式字符串) --> 将字符串内容是json数据的字符串转换成python对应的数据类型数据
dumps(内容) --> 将指定的内容,转换成json格式的字符串
json | python |
---|---|
json | python |
数字 | int/float |
字符串 | str |
数组 | list |
字典 | dict |
true/false | True/False |
null | None |
import json # 1.loads """ loads(字符串) --> 要求字符串的内容必须满足json格式 """ content = json.loads('100.12') print(content, type(content)) content = json.loads('"abc"') print(content, type(content)) content = json.loads('[12, 12.8, "name", [1, "2a"]]') print(content, type(content)) print(type(content[3])) content = json.loads('{"a": 100, "b": true, "c": false, "d": null}') print(content, type(content)) # 2.load """ load(文件对象) --> 将文件对象中的内容转换成python数据类型数据。要求文件中的内容必须是json格式的数据 """ with open('./files/test.txt') as f: print(json.load(f)) """ python转json: python json int/float 数字 str 字符串(会将单引号变成双引号) True/False true/false dict 字典 列表/元祖 数组 None null 注意:除了上面列出的类型,其他类型不能直接转换成json格式的数据 """ # 3.dumps """ dumps(内容) --> 内容是python数据。返回值是一个字符串,并且字符串的内容满足是json格式的 """ str1 = json.dumps([1, 2, 'abc']) print(str1) print(json.dumps((100, 200, 'abc'))) str1 = json.dumps({'a': -12.34, 'b': True, 'c': 'Hello'}) print(str1, type(str1)) # 4.dump """ dump(内容, 文件对象) --> 将内容以json格式写入文件中 """ with open('./files/test3.json', 'w') as f: json.dump({'a': 100, 'b':200, 'c': True}, f)