NCO / pynco:ncea在Python中找不到文件

时间:2019-02-07 21:11:15

标签: python nco pynco

我正在尝试从python内部运行ncea,以根据多年数据中的每日文件得出月平均值。

命令:

ncea -v analysed_sst,sea_ice_fraction /mnt/r01/data/goes-poes_ghrsst/daily/200301*.nc 200301-gp-monthly.nc

在终端上运行正常。

但是在Python中,出现以下错误:

call(["ncea","-v","analysed_sst,sea_ice_fraction","/mnt/r01/data/goes-poes_ghrsst/daily/200301*.nc",monthly_file])
ncea: ERROR file /mnt/r01/data/goes-poes_ghrsst/daily/200301*.nc neither exists locally nor matches remote filename patterns

我也尝试过:

nco.ncea(input="/mnt/r01/data/goes-poes_ghrsst/daily/200301*.nc",output=monthly_file).variables['analysed_sst','sea_ice_fraction']

并得到相同的错误。

我不知道这是NCO问题还是Python问题。

当我仅使用两个文件来查看问题是否来自通配符时,会出现相同的错误。

例如:

input_string="/mnt/r01/data/goes-poes_ghrsst/daily/20030201000000-STAR-L4_GHRSST-SSTfnd-Geo_Polar_Blended_Night-GLOB-v02.0-fv01.0-0-360.nc /mnt/r01/data/goes-poes_ghrsst/daily/20030202000000-STAR-L4_GHRSST-SSTfnd-Geo_Polar_Blended_Night-GLOB-v02.0-fv01.0-0-360.nc"


call(["ncea","-v","analysed_sst,sea_ice_fraction",input_string,monthly_file])
ncea: ERROR file /mnt/r01/data/goes-poes_ghrsst/daily/20030201000000-STAR-L4_GHRSST-SSTfnd-Geo_Polar_Blended_Night-GLOB-v02.0-fv01.0-0-360.nc,/mnt/r01/data/goes-poes_ghrsst/daily/20030202000000-STAR-L4_GHRSST-SSTfnd-Geo_Polar_Blended_Night-GLOB-v02.0-fv01.0-0-360.nc neither exists locally nor matches remote filename patterns

我不知道语法应该是什么。 如果这样做,我会得到相同的错误:

input_string="file1,file2"
input_string="file1 file2"
input_string="file1\ file2"

如果我改用列表,例如glob.glob将返回什么:

input_string=["file1","file2"]

我得到:

TypeError: expected str, bytes or os.PathLike object, not list

谢谢!

1 个答案:

答案 0 :(得分:1)

所以找到这个问题之后:Using all elements of a list as argument to a system command (netCDF operator) in a python code

我终于知道了:

input_string="/mnt/r01/data/goes-poes_ghrsst/daily/200301*.nc"
monthly_file="200301-gp-monthly.nc"
list1=['ncea','-v','analysed_sst,sea_ice_fraction']
list2=glob.glob(input_string)
command=list1+list2+[monthly_file]
subprocess.run(command)