最简单的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