IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python中保存列表和字典 -> 正文阅读

[Python知识库]python中保存列表和字典

python保存列表

(1)保存为.npy文件:

先将列表转为np.array,再进行保存

import numpy as np
graphTable = [
           [[0,3],[1,3],1,'1'],  #A-B
           [[1,3],[2,3],1,'2'],  #B-C
           [[2,3],[2,1],2,'3'],  #C-H
           [[1,3],[1,2],1,'4'],  #B-D
           [[1,2],[1,1],1,'5'],  #D-F
           [[1,2],[0,0],3,'6'],  #D-S
           [[1,1],[2,1],1,'7'],  #F-H
           [[1,1],[3,1],4,'8'],  #F-I
           [[2,1],[3,1],1,'9'],  #H-I
           [[3,3],[3,1],2,'10']  #G-I        
           ] 
m=np.array(graphTable)
np.save('demo.npy',m)

从.npy文件中读出np.array,再转为list格式

a=np.load('demo.npy')
graphTable=a.tolist()

注意:在numpy1.16后np.load()中的allow_pickle默认为False,所以load时需要加上参数allow_pickle=True

numpy中:
(1) load() 和 save() 函数是读写文件数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npy 的文件中;
(2)savez() 函数用于将多个数组写入文件,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为 .npz 的文件中;
(3)loadtxt() 和 savetxt() 函数处理正常的文本文件(.txt 等)

numpy.save(file, arr, allow_pickle=True, fix_imports=True)

  • file:要保存的文件,扩展名为 .npy,如果文件路径末尾没有扩展名 .npy,该扩展名会被自动加上。
  • arr: 要保存的数组
  • allow_pickle: 可选,布尔值,允许使用 Python pickles 保存对象数组,Python 中的 pickle用于在保存到磁盘文件或从磁盘文件读取之前,对对象进行序列化和反序列化。
  • fix_imports: 可选,为了方便 Pyhton2 中读取 Python3 保存的数据。

**numpy.savez(file, *args, kwds)

  • file:要保存的文件,扩展名为 .npz,如果文件路径末尾没有扩展名 .npz,该扩展名会被自动加上。
  • args: 要保存的数组,可以使用关键字参数为数组起一个名字,非关键字参数传递的数组会自动起名为 arr_0, arr_1, … 。
  • kwds: 要保存的数组使用关键字名称。

savetxt() 函数是以简单的文本文件格式存储数据,对应的使用 loadtxt() 函数来获取数据

np.loadtxt(FILENAME, dtype=int, delimiter=' ')
np.savetxt(FILENAME, a, fmt="%d", delimiter=",")

参数 delimiter 可以指定各种分隔符、针对特定列的转换器函数、需要跳过的行数等。

import numpy as np 
 
a = np.array([1,2,3,4,5]) 
np.savetxt('out.txt',a) 
b = np.loadtxt('out.txt')  
 
print(b) #[1. 2. 3. 4. 5.]

使用 delimiter 参数:

import numpy as np 
 
 
a=np.arange(0,10,0.5).reshape(4,-1)
np.savetxt("out.txt",a,fmt="%d",delimiter=",") # 改为保存为整数,以逗号分隔
b = np.loadtxt("out.txt",delimiter=",") # load 时也要指定为逗号分隔
print(b)
[[0. 0. 1. 1. 2.]
 [2. 3. 3. 4. 4.]
 [5. 5. 6. 6. 7.]
 [7. 8. 8. 9. 9.]]

(2)保存为.txt文件:

保存.txt需要将列表内容转为字符串格式

##保存
ipTable=['123.111.111.1','111.111.111.1']
fileObject = open('sampleList.txt', 'w')  
for ip in ipTable:  
    fileObject.write(str(ip))  
    fileObject.write('\n') 
fileObject.close()  

##读取
f = open("sampleList.txt","r")   #设置文件对象
str = f.read()     #将txt文件的所有内容读入到字符串str中
f.close()   #将文件关闭

保存为.npy会保留列表原有的内容格式,使用更为方便,
但保存为.txt格式同样的数据占用空间会更小。

python保存字典

(1)使用numpy,保存为.npy文件

import numpy as np
 
# Save
dict = {'a':1,'b':2,'c':3}
np.save('my_file.npy', dict) # 注意带上后缀名
 
# Load
load_dict = np.load('my_file.npy').item()
print(load_dict['a']) 

(2)使用pickle,保存为.pkl文件

# 字典保存
dict = {'a':1,'b':2,'c':3}
f_save = open('dict_file.pkl', 'wb')
pickle.dump(dict, f_save)
f_save.close()
 
# # 读取
f_read = open('dict_file.pkl', 'rb')
dict2 = pickle.load(f_read)
print(dict2)
f_read.close()


(3)使用JSON(可在pycharm中直接查看)

在python中,JSON模块提供以下四个功能,
dumpsdumploadsload。其中dumps把数据类型转换成字符串并存储在文件中,loads把字符串转换成数据类型,load把文件打开从字符串转换成数据类型;

  • 字典转化为JSON并写入
import json
# 创建字典
info_dict = {'name': 'Joe', 'age': 20, 'job': 'driver'}
# dumps 将数据转换成字符串
info_json = json.dumps(info_dict,sort_keys=False, indent=4, separators=(',', ': '))
# 显示数据类型
print(type(info_json))
f = open('info.json', 'w')
f.write(info_json)
  • 读取JSON文件,并转化为字典
# JSON到字典转化
f2 = open('info.json', 'r')
info_data = json.load(f2)
print(info_data)
# 显示数据类型
print(type(info_data))

参考1
参考2

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-29 10:12:29  更:2021-09-29 10:14:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:53:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码