python 讀取txt,json和hdf5文件的實(shí)例
一.python讀取txt文件
最簡單的open函數(shù):
# -*- coding: utf-8 -*- with open("test.txt","r",encoding="gbk",errors='ignore') as f: print(f.read())
這里用open函數(shù)讀取了一個(gè)txt文件,”encoding”表明了讀取格式是“gbk”,還可以忽略錯誤編碼。
另外,使用with語句操作文件IO是個(gè)好習(xí)慣,省去了每次打開都要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()函數(shù)返回值是dict,json數(shù)據(jù)現(xiàn)在就成了一個(gè)網(wǎng)狀的Python字典。
接下來我們就可以用標(biāo)準(zhǔn)的鍵檢索來進(jìn)行解讀,比如:
print(data['glossary']['GlossDiv']['GlossList'])
打印結(jié)果如下:
{'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),經(jīng)常用于存儲復(fù)雜的科學(xué)數(shù)據(jù)。例如 MATLAB 就是用這個(gè)格式來存儲數(shù)據(jù)。在存儲帶有關(guān)聯(lián)的元數(shù)據(jù)(metadata)的復(fù)雜層次化數(shù)據(jù)的時(shí)候,這個(gè)格式非常有用,例如計(jì)算機(jī)模擬實(shí)驗(yàn)的運(yùn)算結(jié)果等等。
與HDF5 相關(guān)的主要概念有以下幾個(gè):
文件 file: 層次化數(shù)據(jù)的容器,相當(dāng)于樹根('root' for tree)
組 group: 樹的一個(gè)節(jié)點(diǎn)(node for a tree)
數(shù)據(jù)集 dataset: 數(shù)值數(shù)據(jù)的數(shù)組,可以非常非常大
屬性 attribute: 提供額外信息的小塊的元數(shù)據(jù)
# -*- coding: utf-8 -*- #創(chuàng)建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 #將數(shù)據(jù)寫入文件的主鍵data下面 f['labels'] = range(100)
創(chuàng)建完成之后讀取:
import datetime import os import h5py import numpy as np with h5py.File('test.hdf5') as f: print(f) print(f.keys)
除了上述方法,pandas還提供一個(gè)直接讀取h5文件的函數(shù):
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))
打印結(jié)果為:
<class 'pandas.io.pytables.HDFStore'> Closing remaining open files:dataset_log.h5...done
以上這篇python 讀取txt,json和hdf5文件的實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python 通過pip freeze、dowload打離線包及自動安裝的過程詳解(適用于保密的離線環(huán)境
這篇文章主要介紹了python 通過pip freeze、dowload打離線包及自動安裝【適用于保密的離線環(huán)境】,本文通圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12python自制包并用pip免提交到pypi僅安裝到本機(jī)【推薦】
這篇文章主要介紹了python自制包并用pip免提交到pypi僅安裝到本機(jī),本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06python嵌套字典比較值與取值的實(shí)現(xiàn)示例
這篇文章主要給大家介紹了關(guān)于python嵌套字典比較值與取值的實(shí)現(xiàn)方法,詳細(xì)介紹了python字典嵌套字典的情況下獲取某個(gè)key的value的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),需要的朋友們下面來一起看看吧。2017-11-11Python實(shí)現(xiàn)Harbor私有鏡像倉庫垃圾自動化清理詳情
這篇文章主要介紹了Python實(shí)現(xiàn)Harbor私有鏡像倉庫垃圾自動化清理詳情,文章圍繞主題分享相關(guān)詳細(xì)代碼,需要的小伙伴可以參考一下2022-05-05用Python實(shí)現(xiàn)將一張圖片分成9宮格的示例
今天小編就為大家分享一篇用Python實(shí)現(xiàn)將一張圖片分成9宮格的示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Django objects.all()、objects.get()與objects.filter()之間的區(qū)別介紹
這篇文章主要給大家介紹了關(guān)于Django objects.all()、objects.get()與objects.filter()之間的區(qū)別,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-06-06