0

我有一个 python 代码对一些 netCDF 文件执行一些运算符。它具有 netCDF 文件的名称作为列表。我想使用 netCDF 运算符 ncea(netCDF 整体平均值)计算这些 netCDF 文件的整体平均值。但是要调用 NCO,我需要将所有列表元素作为参数传递,如下所示:

 filelist = [file1.ncf file2.ncf file3.ncf ........ file50.ncf]

ncea file1.ncf file2.ncf ......file49.ncf file50.ncf output.cdf

知道如何实现这一点。

任何帮助是极大的赞赏。

4

2 回答 2

1
import subprocess
import shlex
args = 'ncea file1.ncf file2.ncf ......file49.ncf file50.ncf output.cdf'
args = shlex.split(args)
p = subprocess.Popen(args,stdout=subprocess.PIPE)
print p.stdout # Print stdout if you need.
于 2014-08-08T06:28:03.267 回答
-1

我通常会做以下事情:

构建一个包含 ncea 命令的字符串,然后使用该os模块在 python 脚本中执行命令

import os

out_file = './output.nc'

ncea_str = 'ncea '
for file in filelist:
    ncea_str += file+' '

 os.system(ncea_str+'-O '+out_file)

编辑:

import subprocess

outfile = './output.nc'
ncea_str = '{0} {1} -O {2}'.format('ncea', ' '.join(filelist), out_file)
subprocess.call(ncea_str, shell=True)
于 2014-08-13T15:57:17.650 回答