我试图编写一个Python代码来与另一个使用命令行提示的软件交互。执行命令行提示符后,目录中会生成多个输出文件,软件使用这些输出文件进行一些计算。另外,我的程序的其余部分使用这些输出文件。目前,我运行python代码,然后在命令行提示符中手动输入,然后调用其余代码,这一切都很好,但是当我尝试将:
subprocess.call(['sfit4Layer0.py', '-bv5', '-fs'], shell=False)
在我的文件中,它不能正确执行(输出文件不会生成)。在
当我编写上述代码时,它是自己的独立python代码,并在代码的第一部分之后立即调用它——它也起作用了。在
根据我的输出,我确信问题在于:调用生成了多个文件,然后使用这些文件进行计算,但是,它没有生成正确的文件,因此我的输出中出现错误。所以在某种程度上,它似乎有点超前:在进行计算之前,不必等待输出文件被生成,但是,当我在程序之外单独运行这个命令时,它是有效的。你知道为什么会这样吗?在
我做错什么了?我需要指定目录吗(输出文件可以放在我的计算机的其他地方吗)?我需要使用吗子流程.Popen? 我在互联网上搜索过,但我对Python还是个新手,完全被难住了。在
欢迎提出任何建议。谢谢!在
编辑:对于那些询问者,以下是sfit4Layer0.py代码:
^{pr2}$
如果脚本包含shebang并且不可执行 尝试:
^{pr2}$如果脚本是可执行的并且包含shebang 尝试:
试试看:
subprocess.call('sfit4Layer0.py -bv5 -fs', shell=True)
如果试图从python脚本调用另一个python脚本subprocess.call()方法适合您的操作。在
我建议你转过去
希望这个解决方案有效。在
Popen通常用于将STDIN/STDOUT或STDERR从一个进程传递到另一个进程时。在
另外,当您编写文件时,请确保您将文件或目录路径创建为绝对路径,这将有助于您始终将文件放置在所需的位置。在
快乐的编码。在
相关问题 更多 >
编程相关推荐