NCO/pynco: ncks 命令无法 find/move 文件,文件存在

NCO/pynco: ncks command unable to find/move file, file is present

我在 Python 脚本中使用 pynco to run a ncks 命令。尝试在 nco_fl_mv() 函数中执行移动时报告错误:

$ C:/home/Anaconda3/Library/bin/ncks --dmn=lon,0,28,1 --output=C:/home/data/nclimgrid/201801_nclimgrid_dsd/work/lowres_nclimgrid_tavg_slice00.nc C:/home/data/nclimgrid/201801_nclimgrid_dsd/lowres_nclimgrid_tavg.nc
The system cannot find the path specified.
ncks: ERROR nco_fl_mv() unable to execute mv command "move C:/home/data/nclimgrid/201801_nclimgrid_dsd/work/lowres_nclimgrid_tavg_slice00.nc.pid11800.ncks.tmp C:/home/data/nclimgrid/201801_nclimgrid_dsd/work/lowres_nclimgrid_tavg_slice00.nc"

但是,该文件似乎存在:

$ ls -l C:/home/data/nclimgrid/201801_nclimgrid_dsd/work/lowres_nclimgrid_tavg_slice00.nc.pid11800.ncks.tmp 
-rw-r--r-- 1 James.Adams Domain Users 2.9M Feb  9 13:45 C:/home/data/nclimgrid/201801_nclimgrid_dsd/work/lowres_nclimgrid_tavg_slice00.nc.pid11800.ncks.tmp

当我调试 pynco 模块时,我可以看到 nco.py(第 263 行)中的 cmd 对象如下所示:

<class 'list'>: ['C:\home\Anaconda3\Library\bin\ncks', 
                 '--dmn=lon,0,28,1', 
                 '--output=C:/home/data/nclimgrid/201801_nclimgrid_dsd/work/lowres_nclimgrid_tavg_slice00.nc',
              ` 
                 'C:/home/data/nclimgrid/201801_nclimgrid_dsd/lowres_nclimgrid_tavg.nc']`

也许这是权限问题?我在 Windows 机器上使用安装在 Anaconda 上的 NCO/pynco。这发生在命令行 (vanilla NCO) 以及我使用 Pynco NCO 包装器的脚本中。

我建议你自己尝试从命令行失败的底层命令,并报告if/how/whether它需要修改才能成功,即试试这个

move C:/home/data/nclimgrid/201801_nclimgrid_dsd/work/lowres_nclimgrid_tavg_slice00.nc.pid11800.ncks.tmp C:/home/data/nclimgrid/201801_nclimgrid_dsd/work/lowres_nclimgrid_tavg_slice00.nc

您也可以尝试将 --no_tmp_fl 开关添加到 NCO 命令,因为这可以避免权限问题。