.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)
**numpy.savez(file, *args, 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.]]
.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格式同样的数据占用空间会更小。
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'])
# 字典保存 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()
在python中,JSON模块提供以下四个功能,
dumps
、dump
、loads
、load
。其中dumps把数据类型转换成字符串并存储在文件中,loads把字符串转换成数据类型,load把文件打开从字符串转换成数据类型;
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到字典转化 f2 = open('info.json', 'r') info_data = json.load(f2) print(info_data) # 显示数据类型 print(type(info_data))
参考1
参考2