如何从终端退出Python脚本

时间:2018-10-10 10:11:29

标签: python

所以我试图从终端运行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

2 个答案:

答案 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()