Python学习之旅-10-文件储存:txt文件csv文件json文件
Posted 面包的储物间
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习之旅-10-文件储存:txt文件csv文件json文件相关的知识,希望对你有一定的参考价值。
1.存储数据txt文件。
1.1 实例:
# 1 存储 txt 文件
data = ‘‘‘我是一个txt文件‘‘‘
# 存储的文件名:file=‘test.txt‘
# 文件打开方式:mode=‘a‘
# 编码格式:encoding=‘UTF-8‘
with open(file=‘test.txt‘,mode=‘a‘,encoding=‘UTF-8‘) as f :
f.write(data) # 保存内容
f.close() # 关闭文件
1.2 打开文件的不同模式:
模式 | 描述 |
---|---|
r | r,以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | rb,以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ | r+,打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | rb+,以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | w,打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb | wb ,以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
w+ | w+, 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb+ | wb+,以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a | a,打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | a+,打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | ab+,以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
2.存储csv文件
2.1 实例一:存储一行文件
import csv # 导入csv模块
# 实例一:存储一行文件
info_1 = [‘name‘, ‘age‘, ‘sex‘]
info_2 = [‘老王‘, ‘30‘, ‘男‘]
# 存储的文件名:‘test_info.csv‘
# 文件打开方式:‘a‘
# 编码格式:encoding=‘ANSI‘,设置编码格式为ANSI可以避免Excel软件打开出现乱码的情况。
# newline=‘‘ ,如果不设置该参数,相邻两行之间会出现一行空格。
with open(‘test_info.csv‘, ‘a‘, encoding=‘ANSI‘, newline=‘‘)as f:
writer = csv.writer(f) # 调用csv库的 writer()方法初始化写入对象
writer.writerow(info_1) # 保存第一行数据
writer.writerow(info_2) # 保存第二行数据
输出内容:
name | age | sex |
---|---|---|
老王 | 30 | 男 |
2.2 实例二:存储字典形式的数据
import csv # 导入csv模块
# 实例二:存储字典形式的数据
info = {
‘name‘: ‘老王‘,
‘age‘: ‘30‘,
‘sex‘: ‘男‘,}
with open(‘test_info_2.csv‘,‘a‘,encoding=‘ANSI‘,newline=‘‘) as f:
fieldnames = [‘name‘, ‘age‘, ‘sex‘] # 设置文件的头部
writer = csv.DictWriter(f,fieldnames=fieldnames) # 使用DictWriter()方法初始化写入对象
writer.writeheader() # 首先写入文件的头部
writer.writerow(info) # 存储文件主要内容
2.3 实例三:存储多个字典形式的数据
import csv # 导入csv模块
# 实例三:存储多个字典形式的数据
info =[ {‘name‘: ‘老王‘,‘age‘: ‘30‘,‘sex‘: ‘男‘,},
{‘name‘: ‘老大‘,‘age‘: ‘1‘,‘sex‘: ‘男‘,},
{‘name‘: ‘老2‘, ‘age‘: ‘2‘, ‘sex‘: ‘女‘ },
{‘name‘: ‘老3‘, ‘age‘: ‘3‘, ‘sex‘: ‘男‘ }]
with open(‘test_info_2.csv‘,‘a‘,encoding=‘ANSI‘,newline=‘‘) as f:
fieldnames = [‘name‘, ‘age‘, ‘sex‘] # 设置文件的头部
writer = csv.DictWriter(f,fieldnames=fieldnames) # 使用DictWriter()方法初始化写入对象
writer.writeheader() # 首先写入文件的头部
writer.writerows(info) # 存储文件主要内容
# 注意:最后存储主要文件处使用的是:writerows() 方法,比储存单个文件多了一个s。
输出内容:
name | age | sex |
---|---|---|
老王 | 30 | 男 |
老大 | 1 | 男 |
老2 | 2 | 女 |
老3 | 3 | 男 |
3.存储JSON文件
- Json,全称为 JavaScript Object Notation, 也就是 JavaScript 对象标记,通过对象和数组的组合来表示数据,构造简洁但是结构化程度非常高,它是一种轻量级的数据交换格式。
3.1 Json 文件的转换操作:
- loads() 方法将 Json 文本字符串转为 Json 对象。
- dumps()方法将 Json 对象转为文本字符串。
实例:
import json # 导入json模块
info = ‘‘‘[
{"name": "老王","age": "30","sex": "男"},
{"name": "老大","age": "1","sex": "男"}
]‘‘‘
print(type(info)) # 先打印看看info的类型
# 输出内容:<class ‘str‘>
# 1. 把字符串转化为 json文件
info_1 = json.loads(info) # 把字符串转换为json文件
print(type(info_1)) # 打印新文件info_1的类型
print(info_1) # 打印info_1
# 输出内容:<class ‘list‘>
# 输出内容:[{‘name‘: ‘老王‘, ‘age‘: ‘30‘, ‘sex‘: ‘男‘}, {‘name‘: ‘老大‘, ‘age‘: ‘1‘, ‘sex‘: ‘男‘}]
# 2. 把json文件转化为字符串
info_2 = json.dumps(info_1) # 把字符串转换为json文件
print(type(info_2)) # 打印新文件info_2的类型
# 输出内容:<class ‘str‘>
3.2 保存和读取json文件
import json # 导入json模块
info = ‘‘‘[
{"name": "老王","age": "30","sex": "男"},
{"name": "老大","age": "1","sex": "男"}
]‘‘‘
# 1.输出为json文件
with open(‘test_json.json‘,‘w‘) as f:
f.write(json.dumps(info)) #利用dumps()方法把json对象转为字符串,然后使用write()方法写入文件
# 2. 读取json文件
with open(‘test_json.json‘,‘r‘) as f:
str = f.read()
data = json.loads(str) #利用loads()方法把字符串转化,然后打印出来
print(data)
注意: Json 的字符串数据表示需要使用双引号,不能使用单引号,否则loads()方法会解析失败。
以上是关于Python学习之旅-10-文件储存:txt文件csv文件json文件的主要内容,如果未能解决你的问题,请参考以下文章