我在模块中发现了一些问题,但更常见的问题似乎是正确地获取参数列表,我认为我(最终)已经处理好了
我试图运行一个程序,在命令行中需要这样的输入
fits2ndf in out
“in”是要转换的文件的文件路径,“out”是要将结果保存到的路径和文件名。
所以使用子流程
subprocess.call(["fits2ndf","/media/tom_hdd/Transfer/reference.fits","/media/tom_hdd/Transfer/reference.sdf"])
这就提高了
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
设置shell=TRUE
(我知道这不好)会产生相同的结果。不确定是否相关,但我正在使用tcsh。有什么建议吗?
根据问题编辑
我没有永久地设置路径,但是fits2ndf
是我使用初始化的程序包的一部分
% tcsh
% setenv STARLINK_DIR /home/tomq/star-kapuahi
% source $STARLINK_DIR/etc/login
% source $STARLINK_DIR/etc/cshrc
并且通常从任何目录中工作,而不指定完整路径。
您可能需要删除
" /media/tom_hdd/Transfer/reference.sdf"
中的空间另外,尝试将所有内容放在一个字符串中,比如
"fits2ndf /media/tom_hdd/Transfer/reference.fits /media/tom_hdd/Transfer/reference.sdf"
一定要指向正确的方向。
which fits2ndf
将显示fits2ndf的路径。在那之后,你可以写你的代码的完整路径,它应该可以工作。
例如:
我的python代码:
相关问题 更多 >
编程相关推荐