gpt4 book ai didi

python - 通过子进程在 python 中启动后台进程并将输出写入文件

转载 作者:太空宇宙 更新时间:2023-11-03 11:59:57 25 4
gpt4 key购买 nike

亲爱的 stackoverflow 用户,

我正在寻找一个可能非常简单的问题的解决方案。我想自动执行一些量子化学计算,但遇到了一个小问题。

通常,您使用远程服务器上的输入文件 (*.inp) 作为后台进程启动量子化学程序(在我的例子中称为 orca),然后通过管道将输出输出到输出文件 (*.out)

nohup orca H2.inp >& H2.out &

或类似的东西。

现在我想使用 python 脚本(带有一些模板)自动写入输入文件。最后,脚本应该以一种我可以在不停止 orca 的情况下注销服务器的方式开始计算。我试过

subprocess.run(["orca", input_file], stdout=output_file)

但到目前为止它还没有奏效。如何使用子流程模块“模拟”顶部给出的命令?

问候

更新我有一个名为 H2.xyz 的文件。该脚本按点读取和拆分文件名,并创建一个输入文件名 H2.inp,输出应写入文件 H2.out

更新 2输入文件来自 *xyz 文件,通过

xyzfile = str(sys.argv[1])
input_file = xyzfile.split(".")[0] + ".inp"
output_file = xyzfile.split(".")[0] + ".out"

并通过模板在脚本中创建。最后我想按以下方式运行脚本:

python3 script.py H2_0_1.xyz

最佳答案

为什么不简单:

subprocess.Popen(f'orca {input_file} >& {output_file}',
shell=True, stdin=None, stdout=None, stderr=None, close_fds=True)

更多信息: Run Process and Don't Wait

关于python - 通过子进程在 python 中启动后台进程并将输出写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52095801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com