最简单的open函数:
1
2
3
|
# -*- coding: utf-8 -*-
with open ( "test.txt" , "r" ,encoding = "gbk" ,errors = 'ignore' ) as f:
print (f.read())
|
这里用open函数读取了一个txt文件,”encoding”表明了读取格式是“gbk”,还可以忽略错误编码。
另外,使用with语句操作文件IO是个好习惯,省去了每次打开都要close()。
二.python读取json文件
简单的test.json文件如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
{
"glossary" : {
"title" : "example glossary" ,
"GlossDiv" : {
"title" : "S" ,
"GlossList" : {
"GlossEntry" : {
"ID" : "SGML" ,
"SortAs" : "SGML" ,
"GlossTerm" : "Standard Generalized Markup Language" ,
"Acronym" : "SGML" ,
"Abbrev" : "ISO 8879:1986" ,
"GlossDef" : {
"para" : "A meta-markup language, used to create markup languages such as DocBook." ,
"GlossSeeAlso" : [ "GML" , "XML" ]
},
"GlossSee" : "markup"
}
}
}
}
}
|
这里需要用python的json模块处理解析:
1
2
3
4
|
import json
data = json.load( open ( 'example.json' ))
print ( type (data))
print (data)
|
打印如下:
1
2
|
< class 'dict' >
{ 'glossary' : { 'title' : 'example glossary' , 'GlossDiv' : { 'title' : 'S' , 'GlossList' : { 'GlossEntry' : { 'ID' : 'SGML' , 'SortAs' : 'SGML' , 'GlossTerm' : 'Standard Generalized Markup Language' , 'Acronym' : 'SGML' , 'Abbrev' : 'ISO 8879:1986' , 'GlossDef' : { 'para' : 'A meta-markup language, used to create markup languages such as DocBook.' , 'GlossSeeAlso' : [ 'GML' , 'XML' ]}, 'GlossSee' : 'markup' }}}}}
|
可见json.load()函数返回值是dict,json数据现在就成了一个网状的Python字典。
接下来我们就可以用标准的键检索来进行解读,比如:
1
|
print (data[ 'glossary' ][ 'GlossDiv' ][ 'GlossList' ])
|
打印结果如下:
1
|
{ 'GlossEntry' : { 'ID' : 'SGML' , 'SortAs' : 'SGML' , 'GlossTerm' : 'Standard Generalized Markup Language' , 'Acronym' : 'SGML' , 'Abbrev' : 'ISO 8879:1986' , 'GlossDef' : { 'para' : 'A meta-markup language, used to create markup languages such as DocBook.' , 'GlossSeeAlso' : [ 'GML' , 'XML' ]}, 'GlossSee' : 'markup' }}
|
三.python 读取HFD5文件
HDF5 是一种层次化的格式(hierarchical format),经常用于存储复杂的科学数据。例如 MATLAB 就是用这个格式来存储数据。在存储带有关联的元数据(metadata)的复杂层次化数据的时候,这个格式非常有用,例如计算机模拟实验的运算结果等等。
与HDF5 相关的主要概念有以下几个:
文件 file: 层次化数据的容器,相当于树根('root' for tree)
组 group: 树的一个节点(node for a tree)
数据集 dataset: 数值数据的数组,可以非常非常大
属性 attribute: 提供额外信息的小块的元数据
1
2
3
4
5
6
7
8
9
10
11
|
# -*- coding: utf-8 -*-
#创建hdf5文件
import datetime
import os
import h5py
import numpy as np
imgData = np.zeros(( 30 , 3 , 128 , 256 ))
if not os.path.exists( 'test.hdf5' ):
with h5py. File ( 'test.hdf5' ) as f:
f[ 'data' ] = imgData #将数据写入文件的主键data下面
f[ 'labels' ] = range ( 100 )
|
创建完成之后读取:
1
2
3
4
5
6
7
|
import datetime
import os
import h5py
import numpy as np
with h5py. File ( 'test.hdf5' ) as f:
print (f)
print (f.keys)
|
除了上述方法,pandas还提供一个直接读取h5文件的函数:
1
2
3
4
5
6
7
8
|
pd.HDFStore
import datetime
import os
import h5py
import numpy as np
import pandas as pd
data = pd.HDFStore( "dataset_log.h5" )
print ( type (data))
|
打印结果为:
1
2
|
< class 'pandas.io.pytables.HDFStore' >
Closing remaining open files:dataset_log.h5...done
|
以上这篇python 读取txt,json和hdf5文件的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/xiangxianghehe/article/details/72677108