Python: 如何使用glob和通配符打开CDF文件

Python: how to use glob and wildcard to open CDF files

我试图打开多个 .cdf 文件并将它们存储在字典中,但是当我尝试在 pycdf.CDF() 命令中使用通配符时,返回了此错误:spacepy.pycdf.CDFError: NO_SUCH_CDF: The specified CDF does not exist.

.cdf 文件有一个初始名称 (instrumentfile)、一个日期 (20010101),然后是一个可变部分(可以是 1、2、3 或 4)。这意味着我不能简单地编写如下代码:

DayCDF = pycdf.CDF('/home/location/instrumentfile'+str(dates)+'.cdf')

我还需要更改分配给 .cdf 数据的变量的名称,因此我正在尝试将数据导入字典(也不确定这是否可行)。

当前代码如下所示:

dictDayCDF = {}

for x in range(len(dates)):
    dictDayCDF["DayCDF"+str(x)] = pycdf.CDF('/home/location/instrumentfile'+str(dates[x])+'*.cdf')


和returns错误spacepy.pycdf.CDFError: NO_SUCH_CDF: The specified CDF does not exist.

我也尝试过使用 glob.glob,正如我在类似问题的答案中看到的那样,但我无法弄清楚如何将命令应用于打开 .cdf 文件:

dictDayCDF = {}

for x in range(len(dates)):
    dictDayCDF["DayCDF"+str(x)] = pycdf.CDF(glob.glob('/home/location/instrumentfile'+str(dates[x])+'*.cdf'))


返回此错误:ValueError: pathname must be string-like

预期结果是一个 .cdf 文件的字典,可以使用名称 DayCDF1、DayCDF2 等调用,无论结束变量部分如何都可以导入。

如何从以下代码框架开始:

import glob

for file_name in glob.glob('./*.cdf'):
    print(file_name)
    #do something else with the file_name

至于您遇到的错误消息的根本原因:如果您 check the documentation of the method you're trying to use,则表明

Open or create a CDF file by creating an object of this class. Parameters:

pathname : string

name of the file to open or create

基于此,我们可以推断它需要一个文件名而不是一个文件名列表。当您尝试强制使用文件名列表时,即使用 glob 的结果,它会像您观察到的那样抱怨。