我有一个.h5文件,我需要将其转换为.csv,这是我所做的。
#coding: utf-8
import numpy as np
import sys
import h5py
file = h5py.File('C:/Users/Sakib/Desktop/VNP46A1.A2020086.h01v01.001.2020087082319.h5','r')
a = list(file.keys())
np.savetxt(sys.stdout, file[a[0:]], '%g', ',')
但这产生了一个错误,说'list'对象没有属性'encode'。
[P.S 另外,我以前没有使用过模块系统。我的新csv文件要写在哪里,用什么名字?]
首先,你在文件的排列上有一个小错误。[]
. 不需要创建一个列表。另外。sys.stdout
取决于你的流程 "标准输出"。对于一个交互式进程,它将进入屏幕。如果你想捕获输出,你应该创建一个文件并写入它。另外,你的格式化字符串(%g
)需要匹配HDF5数据集中的数据。
h5f= h5py.File('C:/Users/.....h5','r')
for a in h5f.keys() :
outf = open('./save_'+a+'.txt','w')
np.savetxt(outf, file[a][:], '%g', ',')
outf.close