gpt4 book ai didi

python - 如何在python中停止当前执行的系统调用

转载 作者:行者123 更新时间:2023-11-30 23:37:44 25 4
gpt4 key购买 nike

从 python 中我调用一个 java 函数:

os.system("java -jar example.jar run myFunction 'inFile.txt' 'outFile.txt' " ) 

该函数正在处理一个文件,并将输出写入“outFile.txt”。输出取决于“inFile.txt”中的信息。在处理输入文件并写入输出文件时,有时“outFile.txt”变得太大(数十GB),此时,我想退出当前处理并继续处理另一个inFile.txt

有没有办法知道我正在写入的 outFile.txt 已增长超过 10GB。

编辑:正如 Maksym 所建议的,我正在使用以下代码并且似乎正在工作。谢谢

import subprocess
from time import sleep
p = subprocess.Popen(["java", "-jar", "example.jar", "run", "myFunction", "'inFile.txt'", "'outFile.txt'")
rc = p.poll() #returncode
while (rc == None):
sleep(1)
if(os.path.getsize(outFileName) < 1000000000):
rc = p.poll()
continue
else:
p.kill()
break

最佳答案

看看subprocess模块。使用Popen你可以 fork 一个进程并在需要时杀死它:

import subprocess
from time import sleep
p = subprocess.Popen(["java", "-jar", "example.jar", "run", "myFunction", "'inFile.txt'", "'outFile.txt'")
while not check_my_conditions():
sleep(my_timeout)
p.kill()

然后,您可以轮换文件并重新启动该过程。

关于python - 如何在python中停止当前执行的系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15209515/

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