python中保存列表和字典
2021/9/28 22:11:09
本文主要是介绍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模块提供以下四个功能,
dumps
、dump
、loads
、load
。其中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中保存列表和字典的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python