簡體   English   中英

執行子進程后Python程序停止。

[英]Python program stops after executing subprocess.Popen once

我試圖使用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()

如果要執行命令,等待並檢查代碼0退出(未遇到錯誤),則應嘗試使用check_output ,如下所示:

import subprocess
your_command = 'you command(s) here'
subprocess.check_output(your_command, shell=True)
import subprocess
A = subprocess.Popen("command", shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
print(A.communicate)

我很確定您可以從那里拿走它。

嘗試

pip install plumbum

由於我不知道它的上下文,因此我使用ifconfig命令開發了一個小示例,該示例由for組成。

from plumbum.cmd import grep, ifconfig
from plumbum import FG, BG

lst = ['Link', 'inet', 'LOOPBACK', 'BROADCAST', '127', 'Eth']

for l in lst:
    command = ifconfig | grep[l]
    f = command & BG
    output = f.stdout
    print (output)

輸出:

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  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM