所以我试图从终端运行python脚本,最后它没有退出我打sys.exit()
的过程单元。我试图终止该进程,并使用以下quit()
,raise SystemExit
,# -*- coding: utf-8 -*-
import subprocess, sys, os
from sys import exit
firstarg=sys.argv[1]
service_provider = subprocess.Popen (['ffprobe', '-loglevel', 'fatal', '-select_streams', '-show_entries', 'program_tags', '-of', 'csv=%s' % ("p=0"), '-i', sys.argv[1]], stdout=subprocess.PIPE)
out = service_provider.communicate() [0]
result = out.split('\n')
a = str(result [0])
b = str(result [1])
cmds1 = ['ffmpeg', '-i', sys.argv[1], '-c', 'copy', '-out1.ts']
cmds2 = ['ffmpeg', '-i', sys.argv[1], '-c', 'copy', '-out2.ts']
subprocess.Popen(cmds1)
subprocess.Popen(cmds2)
sys.exit()
,但似乎没有任何效果。下面是我正在使用的代码。有什么想法吗?
list
答案 0 :(得分:0)
使用子流程时,我遇到了类似的问题。如果您的Popen子流程未完成,则可能会导致问题。
示例中的popenlist是字典{'anynameyouchoose:subprocess.Popen()'}
def exit_program(popenlist):
if len(popenlist):
for activepopen in popenlist.values():
activepopen.kill()
print("The program will be terminated in 5 seconds.\n")
time.sleep(4)
print("Bye...\n")
time.sleep(1)
sys.exit()
答案 1 :(得分:0)
好的,所以我设法通过在代码中添加以下内容来使其正常工作,
.Rnw
不确定这是否是干净的方法。它可以完成工作,但是在退出之前,我最终收到以下错误,
out = cmds1.communicate()
cmds1.kill()