本文目录一览:
- 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方法