在python

时间:2016-11-20 13:50:48

标签: python

我有一个包含4个数据集的hdf5文件,每个数据集有3列。 dtype是int64。我试图将其导出为.txt或.csv文件,我希望将每个数据集放在一个单独的文件中,每个文件将有3列。我在python中尝试了这个命令: here is small example of inputs

with open('test.txt','wb') as f:
    np.savetxt(f,s1,fmt='%s')

但输出是一个包含许多列表的.txt文件,并且没有列。不同的数据集也没有分开!这里是我想要获得的输出的小例子,当然对于一个将在分离文件中的数据集。

s1 s2 s3 
4 6 8
5 7 8
7 4 6

您是否建议如何做到这一点?

1 个答案:

答案 0 :(得分:0)

您可能希望使用Python中的免费工具HDFql(http://www.hdfql.com)来解决此问题,使用以下代码段:

# import HDFql module (make sure it can be found by the Python interpreter)
import HDFql

# use (i.e. open) HDF file named "example.h5"
HDFql.execute("USE FILE example.h5")

# write datasets dataset1, dataset2, dataset3 and dataset4 into files file1.csv, file2.csv, file3.csv and file4.csv
HDFql.execute("SELECT FROM dataset1 INTO FILE file1.csv SPLIT 3")
HDFql.execute("SELECT FROM dataset2 INTO FILE file2.csv SPLIT 3")
HDFql.execute("SELECT FROM dataset3 INTO FILE file3.csv SPLIT 3")
HDFql.execute("SELECT FROM dataset4 INTO FILE file4.csv SPLIT 3")

执行此代码的结果将是四个名为file1.csvfile2.csvfile3.csvfile4.csv的文件 每个数据包含分别存储在数据集dataset1dataset2dataset3dataset4中的数据。

对于文件中写入的每三个元素(在您的情况下,三个64位数字),还会写入一个新行(因此关键字为SPLIT 3),每个元素用逗号分隔。如果您需要其他分隔符,请使用关键字SEPARATOR(例如SELECT FROM dataset1 INTO FILE file1.csv SEPARATOR * SPLIT 3)。