Python程序执行后停止子流程.Popen在

2024-10-01 19:19:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用循环执行一个命令行程序多次Python。自然我使用了子流程模块来实现这一点任务。但是在执行python脚本时,命令行程序运行一次,然后停下来。都没有它又跑了吗,它也不会回到Python身上下面是脚本是我写的循环。“commandline”是我运行的命令及其参数

for i in range(len(final)):
    ss=str(final[i][0])
    endpos=str(final[i][1])
    op='/home/nishant/op'+str(i)
    commandline='/home/nishant/project/LOOV/build/./LOOV -v vid -output op -ss ss -endpos endpos -lang eng -print_text'
    subprocess.Popen(commandline,shell=True).communicate()

Tags: 模块命令行程序脚本程序运行home流程ss
3条回答
import subprocess
A = subprocess.Popen("command", shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
print(A.communicate)

我敢肯定你可以从那里拿走。在

如果要执行命令,等待并检查代码0退出(未遇到错误),则应尝试使用check_output

import subprocess
your_command = 'you command(s) here'
subprocess.check_output(your_command, shell=True)

试试Plumbum

pip install plumbum

由于我不知道它的上下文,我用ifconfig命令开发了一个小示例,在的循环中编写。在

^{pr2}$

输出:

docker0   Link encap:Ethernet  Endereço de HW 02:42:cd:ab:75:e2  
enp3s0    Link encap:Ethernet  Endereço de HW 10:c3:7b:c4:21:e4  
          endereço inet6: fe80::8267:7328:8542:3434/64 Escopo:Link
lo        Link encap:Loopback Local  

          inet end.: 172.17.0.1  Bcast:0.0.0.0  Masc:255.255.0.0
          inet end.: 192.168.1.34  Bcast:192.168.255.255  Masc:255.255.0.0
          endereço inet6: fe80::8267:7328:8542:3434/64 Escopo:Link
          inet end.: 127.0.0.1  Masc:255.0.0.0
          endereço inet6: ::1/128 Escopo:Máquina

          UP LOOPBACK RUNNING  MTU:65536  Métrica:1

          UP BROADCAST MULTICAST  MTU:1500  Métrica:1
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Métrica:1

          inet end.: 127.0.0.1  Masc:255.0.0.0

docker0   Link encap:Ethernet  Endereço de HW 02:42:cd:ab:75:e2  
enp3s0    Link encap:Ethernet  Endereço de HW 10:c3:7b:c4:21:e4  

相关问题 更多 >

    热门问题