Python 2.7 在HDF5文件列表上循环

Python 2.7 在HDF5文件列表上循环,python-2.7,hdf5,Python 2.7,Hdf5,我想循环一个.HDF5数据文件列表,然后进行一些操作。因此,为了不使每个文件上的每个操作都是单独的,我想对它进行循环。 我做了以下的 import os import h5py # Read in 2A.GPM.DPR os.chdir('/home/unix/Desktop/source') file_name = ['2A.GPM.DPR.V6-20160118.20150620-S060925-E074157.007431.V04A.HDF5', '2A.GPM

我想循环一个.HDF5数据文件列表,然后进行一些操作。因此,为了不使每个文件上的每个操作都是单独的,我想对它进行循环。 我做了以下的

import os
import h5py

# Read in 2A.GPM.DPR
os.chdir('/home/unix/Desktop/source')
file_name = ['2A.GPM.DPR.V6-20160118.20150620-S060925-E074157.007431.V04A.HDF5',
             '2A.GPM.DPR.V6-20160118.20150801-S100900-E114133.008087.V04A.HDF5']
for n in file_name:
    print n
    #
    f = h5py.File(file_name, 'r')
    ##
在此之后,我得到以下错误

    ---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-26-e6813194d502> in <module>()
      6     print n
      7     #
----> 8     f = h5py.File(file_name, 'r')

/home/unix/anaconda2/lib/python2.7/site-packages/h5py/_hl/files.pyc in __init__(self, name, mode, driver, libver, userblock_size, swmr, **kwds)
    265                     # encoding, just pass it on as-is.  Note Unicode
    266                     # objects can always be encoded.
--> 267                     name = name.encode(sys.getfilesystemencoding())
    268                 except (UnicodeError, LookupError):
    269                     pass

AttributeError: 'list' object has no attribute 'encode'
---------------------------------------------------------------------------
AttributeError回溯(最近一次呼叫上次)
在()
6印刷品
7     #
---->8 f=h5py.File(文件名'r')
/home/unix/anaconda2/lib/python2.7/site-packages/h5py//u hl/files.pyc in_uu_u_uinit_uu(self、name、mode、driver、libver、userblock_size、swmr、**kwds)
265#编码,按原样传递即可。注意Unicode
266#对象始终可以进行编码。
-->267 name=name.encode(sys.getfilesystemencoding())
268除(UnicodeError、LookupError)外:
269通行证
AttributeError:“list”对象没有属性“encode”
你知道这个错误是什么吗?
谢谢你的帮助

您没有打开文件,而是向
.File
方法提供一个列表。您应该将代码更改为以下内容:

import os
import h5py

# Read in 2A.GPM.DPR
os.chdir('/home/unix/Desktop/source')
file_names = ['2A.GPM.DPR.V6-20160118.20150620-S060925-E074157.007431.V04A.HDF5',
             '2A.GPM.DPR.V6-20160118.20150801-S100900-E114133.008087.V04A.HDF5']
for file_name in file_names:
    print file_name
    #
    f = h5py.File(file_name, 'r')
    ##
您正在循环浏览文件名列表,并一次提供一个文件名

我希望这有帮助