python写入和读取h5、pkl、mat 文件

Python019

python写入和读取h5、pkl、mat 文件,第1张

python中使用h5py对HDF5文件进行操作。

1、创建文件和数据

import h5py

import numpy as np

imgData = np.zeros((2,4))

f = h5py.File('HDF5_FILE.h5','w') #创建一个h5文件,文件指针是f

f['data'] = imgData #将数据写入文件的主键data下面

f['labels'] = np.array([1,2,3,4,5])#将数据写入文件的主键labels下面

f.close() #关闭文件

f = h5py.File('HDF5_FILE.h5','r') #打开h5文件

for key in f.keys():

print(f[key].name)

print(f[key].shape)

print(f[key].value)

输出结果:

/data

(2, 4)

[[ 0. 0. 0. 0.]

[ 0. 0. 0. 0.]]

/labels

(5,)

[1 2 3 4 5]

Process finished with exit code 0

写入读取pkl文件

1)字典类型:

import pickle

dict_data={'name':["张三","李四"]}

with open("dict_data.pkl","wb") as fo:

pickle.dump(dict_data,fo)

with open("dict_data","rb") as fo:

dict_data=pickle.load(fo,encoding='bytes')

print(dict_data.keys())

print(dict_data)

print(dict_data["name"])

结果如下:

dict_keys(['name'])

{'name': ['张三', '李四']}

['张三', '李四']

2)列表类型

import pickle

list_data=["张三","李四"]

with open ("list_data","wb") as fo:

pickle.dump(list_data,fo)

with open("list_data","rb") as fo:

pickle.load(fo,encoding='bytes')

print(list_data)

print(list_data.keys())

pirnt(list_data["name"])

mat文件

mat数据格式是Matlab的数据存储的标准格式。在Matlab中主要使用load()函数导入一个mat文件,使用save()函数保存一个mat文件。对于文件data.mat:

load(‘data.mat')

save('data_1.mat','A')

其中'A’表示要保存的内容。

在python读取mat文件:

1、读取文件:

import scipy.io as scio

file1='E://data.mat'

data=scio.loadmat(file1)

注意,读取出来的data是字典格式,可以通过函数type(data)查看。

print type(data)

结果显示

<type 'dict'>

找到mat文件中的矩阵:

print data['A']

结果显示

Excel是一个二进制文件,它保存有关工作簿中所有工作表的信息

CSV代表Comma Separated Values 。这是一个纯文本格式,用逗号分隔一系列值

Excel不仅可以存储数据,还可以对数据进行操作

CSV文件只是一个文本文件,它存储数据,但不包含格式,公式,宏等。它也被称为平面文件

Excel是一个电子表格,将文件保存为自己的专有格式,即xls或xlsx

CSV是将表格信息保存为扩展名为.csv的分隔文本文件的格式

保存在excel中的文件不能被文本编辑器打开或编辑

CSV文件可以通过文本编辑器(如记事本)打开或编辑

excel中会有若干个表单,每个表单都会这些属性: 

行数(nrows) 列数(ncols) 名称(name) 索引(number) 

import xlrd //执行操作前需要导入xlrd库 

#读取文件 

excel = xlrd.open_workexcel("文件地址") //这里表格名称为excel,文件的地址可以从文件的属性中看到 

#读取表格表单数量 

sheet_num= excel.nsheets // sheet_num为变量,其值为表格表单数量 

#读取表格表单名称 

sheet_name = excel.sheet_names() // sheet_name为变量,其值为表格表单名称 

#如果想要看到上述两个变量,可以使用print()函数将它们打印出来 

#想要读取某个表单的数据,首先获取表单 excel.sheet_by_index(0) 

//表单索引从0开始,获取第一个表单对象 excel.sheet_by_name('xxx') 

// 获取名为”xxx”的表单对象 excel.sheets() 

// 获取所有的表单对象 获取单元格的内容:使用cell_value 方法 这里有两个参数:行号和列号,用来读取指定的单元格内容。 

第一行的内容是:sheet.row_values(rowx=0) 

第一列的内容是:sheet.col_values(colx=0)

CSV是英文Comma Separate Values(逗号分隔值)的缩写,文档的内容是由 “,” 分隔的一列列的数据构成的。在python数据处理中也经常用到。

import csv //执行操作前需要导入csv库 

#csv读取 

遍历其中数据 csv_file = csv.reader(open(‘文件地址’,’r’)) for x in csv_file print(x)

import pandas as pd # 导入pandas包,用于读取文件

data = pd.read_excel('XXX.xlsx') # 读取文件名为XXX的文件

# data = pd.read_excel(r'XXX.xlsx') # 这行代码上行效果相同,r代表read读取文件,默认是r

data.head() # 查看数据

# data.head(6) # 查看前6行数据

登录后复制

data.to_excel('XXX.xlsx', index=False) # 将data数据集导出至名为XXX的文件中。