Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用参数运行python函数_Python - Fatal编程技术网

使用参数运行python函数

使用参数运行python函数,python,Python,通过该命令,我可以从csh(例如ncinfo test.nc)查看netcdf文件的内容。ncinfo命令实际上调用python函数 . 我的问题是:如何直接从python shell使用ncinfo函数 我试过了 from netCDF4.utils import ncinfo ncinfo() 但我不知道如何将文件名“test.nc”传递给函数。 有什么想法吗 编辑:根据评论,我认为现在的问题是 如何在python shell中“伪造”一个参数以提供一个函数,该函数使用getopt.get

通过该命令,我可以从csh(例如
ncinfo test.nc
)查看netcdf文件的内容。ncinfo命令实际上调用python函数 . 我的问题是:如何直接从python shell使用ncinfo函数

我试过了

from netCDF4.utils import ncinfo
ncinfo()
但我不知道如何将文件名“test.nc”传递给函数。 有什么想法吗

编辑:根据评论,我认为现在的问题是

如何在python shell中“伪造”一个参数以提供一个函数,该函数使用
getopt.getopt
sys.argv
来接受参数?

正如在注释中指出的,在调用函数之前,可以手动修改sys.argv(不知道它是可变的)。因此,一个有效的解决方案是

from netCDF4.utils import ncinfo
backup = sys.argv
sys.argv = ['','test.nc']
ncinfo()
sys.argv = backup
正如和在注释中指出的,可以在调用函数之前手动修改sys.argv(不知道它是可变的)。因此,一个有效的解决方案是

from netCDF4.utils import ncinfo
backup = sys.argv
sys.argv = ['','test.nc']
ncinfo()
sys.argv = backup

如果遵循链接,则不接受python中的函数参数。那么您希望如何传递文件名?参数来自
sys.argv
。。。因此,如果希望以编程方式检查数据,那么必须使用
子流程
,为什么不使用
netCDF4.utils.Dataset()
,它完成所有繁重的工作,并使用
文件名
。正如前面指出的,
ncinfo()
是cmd行接口。在IPython shell提示符下,您可以说
run/path/to/ncinfo test.nc
。或者更一般地说,您可以在调用
ncinfo()
之前手动设置sys.argv[1:],如果函数使用sys.argv[1:]获取参数,只需在其中放入一个新值……sys.argv.append(“test.nc”),如果您遵循链接,则不接受python中的函数参数。那么您希望如何传递文件名?参数来自
sys.argv
。。。因此,如果希望以编程方式检查数据,那么必须使用
子流程
,为什么不使用
netCDF4.utils.Dataset()
,它完成所有繁重的工作,并使用
文件名
。正如前面指出的,
ncinfo()
是cmd行接口。在IPython shell提示符下,您可以说
run/path/to/ncinfo test.nc
。或者更一般地说,您可以在调用
ncinfo()
之前手动设置sys.argv[1:][/code>,如果函数使用sys.argv[1:]获取参数,只需在其中添加一个新值…sys.argv.append(“test.nc”)