python将数据保存到文件的多种实现方式

  • 🌈所属专栏:【python】
  • 作者主页:  Mr.Zwq
  • ✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询!

您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!🤩🥰😍

目录

一、原始方式

二、使用自带模块

1.json

保存

读取

2.pickle

保存

读取

3.csv

保存

读取

总结


一、原始方式

# 这里假设数据集是一个用户字典列表
users_list=[
    {'id':1,'name':'小明','age':14,'sex':'男'},
    {'id':2,'name':'张三','age':16,'sex':'女'},
    {'id':3,'name':'李四','age':17,'sex':'男'},
    {'id':4,'name':'王五','age':12,'sex':'女'},
]

# 将数据写入文件并保存
with open('users_list.txt','w') as f:
    f.write(str(users_list))    # 注意使用str函数将列表转换成字符串类型

# 从文件读取数据
with open('users_list.txt','r') as f:
    users_list=eval(f.read())   # 使用eval函数将字符串类型数据转换成列表
    print(users_list)
    print(type(users_list))

打开该文件查看:

查看输出:


 

二、使用自带模块

1.json

保存

import json

# 这里假设数据集是一个用户字典列表
users_list=[
    {'id':1,'name':'小明','age':14,'sex':'男'},
    {'id':2,'name':'张三','age':16,'sex':'女'},
    {'id':3,'name':'李四','age':17,'sex':'男'},
    {'id':4,'name':'王五','age':12,'sex':'女'},
]

# 将数据写入文件并保存
with open('users.json','w') as f:
    json.dump(users_list,f)

打开该文件查看:

可以发现中文被进行了默认的自动编码,如若不想进行编码转换,可设置  ensure_ascii=False,即修改为:

# 将数据写入文件并保存
with open('users.json','w') as f:
    json.dump(users_list,f,ensure_ascii=False)

再次打开该文件查看 :


读取

# 从文件读取数据
with open('users.json','r') as f:
    users=json.load(f)
print(users)
print(type(users))

查看输出

读取出来数据已经是列表类型了,可直接进行操作。

2.pickle

保存

import pickle

# 这里假设数据集是一个用户字典列表
users_list=[
    {'id':1,'name':'小明','age':14,'sex':'男'},
    {'id':2,'name':'张三','age':16,'sex':'女'},
    {'id':3,'name':'李四','age':17,'sex':'男'},
    {'id':4,'name':'王五','age':12,'sex':'女'},
]

# 将数据写入文件并保存
with open('users_list.pkl', 'wb') as f:
    pickle.dump(users_list, f)

注意:这里保存的模式是wb,即二进制方式写入,因为pickle是按照二进制的方式进行保存、读取数据的。

打开该文件查看:


读取

# 从文件读取数据
with open('users_list.pkl', 'rb') as f:
    users_list = pickle.load(f)
print(users_list)
print(type(users_list))

注意这里使用 rb模式,即二进制方式读取 。

查看输出:

 读取出来数据已经是列表类型了,可直接进行操作。 

3.csv

保存

import csv

# 这里假设数据集是一个用户字典列表
users_list=[
    {'id':1,'name':'小明','age':14,'sex':'男'},
    {'id':2,'name':'张三','age':16,'sex':'女'},
    {'id':3,'name':'李四','age':17,'sex':'男'},
    {'id':4,'name':'王五','age':12,'sex':'女'},
]

# 将数据写入文件并保存
# 需指定 newline='' ,不然保存时默认会间隔空行,可自行去除后查看对比
with open('users.csv','w',newline='') as f:     
    csv_writer=csv.DictWriter(f,fieldnames=users_list[0].keys())    # 创建一个csv写入对象,表头为用户字典的键
    csv_writer.writeheader()    # 写入表头
    csv_writer.writerows(users_list)    # 写入数据

打开文件查看(csv格式文件可以用excel打开并进行编辑):

 


读取

# 从文件读取数据
with open('users.csv','r') as f:
    users_list = csv.DictReader(f)
    users_list=[i for i in users_list]
    print(users_list)

 查看输出

读取出来数据是一个 csv.DictReader 对象,遍历转化为列表后进行操作。

总结

感谢观看,原创不易,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹🌹🌹

👍🏻也欢迎你,关注我。👍🏻

如有疑问,可在评论区留言哦~

 

相关推荐

  1. python输出保存txt文档

    2024-06-17 06:14:04       41 阅读
  2. SpringBoot上传文件保存临时文件

    2024-06-17 06:14:04       40 阅读
  3. mysql每天自动数据库数据保存指定文件夹

    2024-06-17 06:14:04       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-17 06:14:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-17 06:14:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-17 06:14:04       82 阅读
  4. Python语言-面向对象

    2024-06-17 06:14:04       91 阅读

热门阅读

  1. 阿里云主机使用 docker-compose 部署 harbor 镜像仓库

    2024-06-17 06:14:04       26 阅读
  2. C++二进制文件的读与写

    2024-06-17 06:14:04       30 阅读
  3. 周记-20240616

    2024-06-17 06:14:04       30 阅读
  4. Spring框架的原理及应用详解(六)

    2024-06-17 06:14:04       22 阅读
  5. Springboot&&Spring

    2024-06-17 06:14:04       25 阅读
  6. MySQL学习——在用Connector/NET处理BLOB数据

    2024-06-17 06:14:04       23 阅读
  7. 【前端面试】动态表单篇

    2024-06-17 06:14:04       28 阅读
  8. Elasticsearch-通过分析器进行分词

    2024-06-17 06:14:04       31 阅读
  9. Web前端个人博客设计:创意与技术的融合之旅

    2024-06-17 06:14:04       26 阅读
  10. Spring相关注解详细版

    2024-06-17 06:14:04       32 阅读
  11. 6月16日,每日信息差

    2024-06-17 06:14:04       24 阅读
  12. Redis入门与实践

    2024-06-17 06:14:04       32 阅读
  13. 【双系统 安装ADB】

    2024-06-17 06:14:04       30 阅读
  14. shell 使用 getopt 获取命令行参数。

    2024-06-17 06:14:04       33 阅读
  15. LeetCode //MySQL - 175. Combine Two Tables

    2024-06-17 06:14:04       36 阅读