代码之家  ›  专栏  ›  技术社区  ›  James Adams

NCO/pynco:ncks命令无法找到/移动文件,文件存在

  •  0
  • James Adams  · 技术社区  · 7 年前

    我正在使用 pynco 运行 ncks Python脚本中的命令。尝试在 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中的cmd对象。py(第263行)如下所示:

    <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包装器的脚本中。

    1 回复  |  直到 3 年前
        1
  •  1
  •   Charlie Zender    7 年前

    我建议您自己尝试从命令行执行失败的底层命令,并报告是否/如何/是否需要修改它才能成功,即尝试以下操作

    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\u tmp\u fl开关添加到NCO命令,因为这样可以避免权限问题。