h、数据存储
数据存储
1、文件存储
1.1、TXT文本存储
1.1.1、文件方法
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
file: 必需,文件路径(相对或者绝对路径)。
mode: 可选,文件打开模式
buffering: 设置缓冲
encoding: 一般使用utf8
errors: 报错级别
newline: 区分换行符
closefd: 传入的file参数类型
opener:
模式 | 描述 |
---|---|
t | 文本模式 (默认)。 |
x | 写模式,新建一个文件,如果该文件已存在则会报错。 |
b | 二进制模式。 |
+ | 打开一个文件进行更新(可读可写)。 |
U | 通用换行模式(Python 3 不支持)。 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
1.1.2、简化写法
with open(文件名, 写入模式,编码格式) as 别名:
file.write(str)
1.2、JSON文件存储
JSON,全称为 JavaScript O同ect Notation, 也就是 JavaScript对象标记, 它通过对象和数组的组合 米表示数据,构造简洁但是结构化程度非常高,是一种轻量级的数据交换格式。
1.2.1、对象和数组
对象:它在 JavaScript 中是使用花括号{}包裹起来的内容,数据结构为{keyl: va luel, key2: value2, … }的键值对结构。 在面向对象的语言中, key 为对象的属性, value 为对应的值。 键名可以使用整数和字符串来表示。 值的类型可以是任意类型。
数组:数组在 JavaScript 中是方括号[]包裹起来的内容,数据结构为[”java”, ”javascript”, "vb'’,.. . ]的索引结构。在 JavaScript 中, 数组是一种比较特殊的数据类型,它也可以像对象那样使用键值对,但还是索引用得多。 同样,值的类型可以是任意类型。
1.2.2、读取JSON
loads():将文件中的字符串转化为JSON对象
load():将字符串转化为JSON对象
1.2.3、输出JSON
dumps():将文件中的JSON对象转化为字符串
dump():将JSON对象转化为字符串
1.2.4、简化写法
with open(文件名, 写入模式,编码格式) as 别名:
file.write(json.dumps(数据,indent=缩进数))
1.3、CSV文件存储
csv,全称为 Comma-Separated Values,中文可以叫作逗号分隔值或字符分隔值,其文件以纯文 本形式存储表格数据。 该文件是一个字符序列,可以由任意数目的记录组成,记录间以某种换行符分 隔。 每条记录由字段组成,字段间的分隔符是其他字符或字符串,最常见的是逗号或制表符。 不过所 有记录都有完全相同的字段序列 ,相当于一个结构化表的纯文本形式。
1.3.1、写入
csv.writer()初始化写入对象并传入delimiter分隔符
csv.DictWriter()初始化字典写入对象
writerow()传入每行数据即完成写入
1.3.2、读取
csv.reader():构建Reader对象,通过遍历以列表形式输出每行内容
pandas.read_csv():通过pandas的read_csv方法读取CSV格式