python 读取txt,json和hdf5文件的实例


Posted in Python onJune 05, 2018

一.python读取txt文件

最简单的open函数:

# -*- 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文件如下:

{
 "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模块处理解析:

import json
data = json.load(open('example.json'))
print(type(data))
print(data)

打印如下:

<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字典。

接下来我们就可以用标准的键检索来进行解读,比如:

print(data['glossary']['GlossDiv']['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 读取HFD5文件

HDF5 是一种层次化的格式(hierarchical format),经常用于存储复杂的科学数据。例如 MATLAB 就是用这个格式来存储数据。在存储带有关联的元数据(metadata)的复杂层次化数据的时候,这个格式非常有用,例如计算机模拟实验的运算结果等等。

与HDF5 相关的主要概念有以下几个:

文件 file: 层次化数据的容器,相当于树根('root' for tree)

组 group: 树的一个节点(node for a tree)

数据集 dataset: 数值数据的数组,可以非常非常大

属性 attribute: 提供额外信息的小块的元数据

# -*- 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)

创建完成之后读取:

import datetime
import os
import h5py
import numpy as np
with h5py.File('test.hdf5') as f:
 print(f)
 print(f.keys)

除了上述方法,pandas还提供一个直接读取h5文件的函数:

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))

打印结果为:

<class 'pandas.io.pytables.HDFStore'>
Closing remaining open files:dataset_log.h5...done

以上这篇python 读取txt,json和hdf5文件的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 列表(List) 的三种遍历方法实例 详解
Apr 15 Python
CentOS中升级Python版本的方法详解
Jul 10 Python
python、java等哪一门编程语言适合人工智能?
Nov 13 Python
Python实现嵌套列表去重方法示例
Dec 28 Python
Python通过OpenCV的findContours获取轮廓并切割实例
Jan 05 Python
python 借助numpy保存数据为csv格式的实现方法
Jul 04 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
python 字符串只保留汉字的方法
Nov 16 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
深入理解Python 多线程
Jun 16 Python
如何使用python socket模块实现简单的文件下载
Sep 04 Python
详解如何使用Pytest进行自动化测试
Jan 14 Python
利用Python如何将数据写到CSV文件中
Jun 05 #Python
Python之dict(或对象)与json之间的互相转化实例
Jun 05 #Python
对pandas中to_dict的用法详解
Jun 05 #Python
pandas.DataFrame.to_json按行转json的方法
Jun 05 #Python
读取json格式为DataFrame(可转为.csv)的实例讲解
Jun 05 #Python
Python实现迭代时使用索引的方法示例
Jun 05 #Python
Numpy 将二维图像矩阵转换为一维向量的方法
Jun 05 #Python
You might like
异世界新番又来了,同样是从零开始,男主的年龄降到5岁
2020/04/09 日漫
php中socket的用法详解
2014/10/24 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
基于jquery的分页控件(C#)
2011/01/06 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
一个仿糯米弹框效果demo
2014/07/22 Javascript
PHP+mysql+Highcharts生成饼状图
2015/05/04 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
JS常用知识点整理
2017/01/21 Javascript
yarn的使用与升级Node.js的方法详解
2017/06/04 Javascript
Express系列之multer上传的使用
2017/10/27 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
Vue源码解析之数据响应系统的使用
2019/04/24 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
Angular之jwt令牌身份验证的实现
2020/02/14 Javascript
[08:53]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS 选手采访
2021/03/11 DOTA
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
python安装twisted的问题解析
2018/08/21 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
Python socket实现多对多全双工通信的方法
2019/02/13 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
Python爬虫爬取杭州24时温度并展示操作示例
2020/03/27 Python
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
C语言50道问题
2014/10/23 面试题
工程预算与管理应届生求职信
2013/10/06 职场文书
高中自我鉴定
2013/12/20 职场文书
继承公证书格式
2015/01/26 职场文书
考察邀请函范文
2015/01/31 职场文书
企业文化学习心得体会
2016/01/21 职场文书
《风筝》教学反思
2016/02/23 职场文书
2016年教师党员公开承诺书
2016/03/24 职场文书
Matlab如何实现矩阵复制扩充
2021/06/02 Python
mysql优化之query_cache_limit参数说明
2021/07/01 MySQL