我正在尝试使用python和fortran一起自动化一些绘图。 我非常接近它的工作,但是我遇到了从glob搜索中获取结果以进入我的python函数的问题。
我有一个.py脚本,上面写着
import glob
run=glob.glob('JUN*.aijE*.nc')
from plot_check import plot_check
plot_check(run)
但我收到此错误
plot_check(run)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "plot_check.py", line 7, in plot_check
ncfile=Dataset(run,'r')
File "netCDF4.pyx", line 1328, in netCDF4.Dataset.__init__ (netCDF4.c:6336)
RuntimeError: No such file or directory
我检查了glob正在做它的工作,但是我认为这是我的变量“run”的格式让我搞砸了。
在python中:
>>run
>>['JUN3103.aijE01Ccek0kA.nc']
>>type(run)
<type 'list'>
所以我的glob找到了我要放入函数的文件的文件名,但当我尝试将变量“run”输入到我的函数“plot_check”时,某些东西不能正常工作。
我认为这可能与我的变量“run”的格式有关,但我不太确定如何修复它。
非常感谢任何帮助!
答案 0 :(得分:0)
也许Dataset
期望传递单个字符串文件名,而不是带有一个元素的列表?
尝试使用run[0]
代替(尽管您可能需要先检查以确保您的glob实际上与文件匹配)。
答案 1 :(得分:0)
glob.glob
返回所有匹配文件名的列表。如果你知道总会有一个文件,你可以抓住第一个元素:
filenames = glob.glob('JUN*.aijE*.nc')
plot_check(filenames[0])
或者,如果它可能匹配多个文件,则迭代结果:
filenames = glob.glob('JUN*.aijE*.nc')
for filename in filenames:
plot_check(filename)