本文目錄一覽:
- 1、PYTHON 讀取HDF格式數據出錯?
- 2、Python讀取文件內容的方法有幾種
- 3、如何用numpy提取HDF5數據
- 4、大家好,我想用python代碼批量打開一個文件夾中的所有HDF文件,然後進行處理。
- 5、python如何讀取文件的內容
- 6、python 讀取大文件數據怎麼快速讀取
PYTHON 讀取HDF格式數據出錯?
加一句在最前面看輸出什麼
import os
print(os.path.isfile(“D:/data/04modis/MCD15A2H.A2002185.h00v08.006.2015149102758.hdf”))
Python讀取文件內容的方法有幾種
python讀取文本文件內容的方法主要有三種:read()、readline()、readlines()。
第一種:read()
read()是最簡單的一種方法,一次性讀取文件的所有內容放在一個大字符串中,即內存中。
read()的好處:方便、簡單,一次性讀出文件放在一個大字符串中,速度最快。
read()的壞處:文件過大的時候,佔用內存會過大。
第二種:readline()
readline()逐行讀取文本,結果是一個list。
readline()的好處:佔用內存小,逐行讀取。
readline()的壞處:逐行讀取,速度比較慢。
第三種:readlines()
readlines()一次性讀取文本的所有內容,結果是一個list。
readlines()的好處:一次性讀取文本內容,速度比較快。
readlines()的壞處:隨着文本的增大,佔用內存會越來越多。
如何用numpy提取HDF5數據
我覺得你盡量分解開來:
1 hdf5文件的讀取,這個當然是用python的hdf庫比如ls說的h5py ,讀成你需要的格式或類型,比如numpy的矩陣類型;
2 從numpy的角度考慮將矩陣數據繪製出圖!
大家好,我想用python代碼批量打開一個文件夾中的所有HDF文件,然後進行處理。
很明顯,你這裡的錯誤:
pyhdf.error.HDF4Error: SD: no such file
是和pyhdf,這個python第三方的庫有關係。
即,除非:
某人非常熟悉pyhdf這個庫
有人就是pyhdf的開發者
否則,都很難找到根本的原因和解決辦法啊。
所以,我是沒辦法幫你。
除非:
有你的完整的代碼,有你的所有的對應的HDF文件,
並且模擬你的環境,花時間去調試你這些代碼,
然後,或許,能解決你的問題。。。。。。。。
python如何讀取文件的內容
# _*_ coding: utf-8 _*_
import pandas as pd
# 獲取文件的內容
def get_contends(path):
with open(path) as file_object:
contends = file_object.read()
return contends
# 將一行內容變成數組
def get_contends_arr(contends):
contends_arr_new = []
contends_arr = str(contends).split(‘]’)
for i in range(len(contends_arr)):
if (contends_arr[i].__contains__(‘[‘)):
index = contends_arr[i].rfind(‘[‘)
temp_str = contends_arr[i][index + 1:]
if temp_str.__contains__(‘”‘):
contends_arr_new.append(temp_str.replace(‘”‘, ”))
# print(index)
# print(contends_arr[i])
return contends_arr_new
if __name__ == ‘__main__’:
path = ‘event.txt’
contends = get_contends(path)
contends_arr = get_contends_arr(contends)
contents = []
for content in contends_arr:
contents.append(content.split(‘,’))
df = pd.DataFrame(contents, columns=[‘shelf_code’, ‘robotid’, ‘event’, ‘time’])
擴展資料:
python控制語句
1、if語句,當條件成立時運行語句塊。經常與else, elif(相當於else if) 配合使用。
2、for語句,遍歷列表、字符串、字典、集合等迭代器,依次處理迭代器中的每個元素。
3、while語句,當條件為真時,循環運行語句塊。
4、try語句,與except,finally配合使用處理在程序運行中出現的異常情況。
5、class語句,用於定義類型。
6、def語句,用於定義函數和類型的方法。
python 讀取大文件數據怎麼快速讀取
python中讀取數據的時候有幾種方法,無非是read,readline,readlings和xreadlines幾種方法,在幾種方法中,read和xreadlines可以作為迭代器使用,從而在讀取大數據的時候比較有效果.
在測試中,先創建一個大文件,大概1GB左右,使用的程序如下:
[python] view plaincopyprint?
import os.path
import time
while os.path.getsize(‘messages’) 1000000000:
f = open(‘messages’,’a’)
f.write(‘this is a file/n’)
f.close()
print ‘file create complted’
在這裡使用循環判斷文件的大小,如果大小在1GB左右,那麼結束創建文件。–需要花費好幾分鐘的時間。
測試代碼如下:
[python] view plaincopyprint?
#22s
start_time = time.time()
f = open(‘messages’,’r’)
for i in f:
end_time = time.time()
print end_time – start_time
break
f.close()
#22s
start_time = time.time()
f = open(‘messages’,’r’)
for i in f.xreadlines():
end_time = time.time()
print end_time – start_time
break
f.close()
start_time = time.time()
f = open(‘messages’,’r’)
k= f.readlines()
f.close()
end_time = time.time()
print end_time – start_time
使用迭代器的時候,兩者的時間是差不多的,內存消耗也不是很多,使用的時間大概在22秒作用
在使用完全讀取文件的時候,使用的時間在40s,並且內存消耗相當嚴重,大概使用了1G的內存。。
其實,在使用跌倒器的時候,如果進行連續操作,進行print或者其他的操作,內存消耗還是不可避免的,但是內存在那個時候是可以釋放的,從而使用迭代器可以節省內存,主要是可以釋放。
而在使用直接讀取所有數據的時候,數據會保留在內存中,是無法釋放這個內存的,從而內存卡死也是有可能的。
在使用的時候,最好是直接使用for i in f的方式來使用,在讀取的時候,f本身就是一個迭代器,其實也就是f.read方法
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/246289.html