繁体   English   中英

运行子进程后如何立即杀死Python脚本?

[英]How to immediately kill Python script after running subprocess?

我制作了一个脚本,使用subprocess.run()播放视频文件。

import subprocess

DATA_DIR = 'path\\to\\video\\files'
MEDIA_PLAYER = 'path\\to\\my\\media-player'

# returns path of random video file
p = chooseOne(DATA_DIR)
print('playing {}'.format(p))

# runs chosen path
subprocess.run([MEDIA_PLAYER, p])

但是我想在打开子子进程后立即终止运行此代码的python脚本。

这可能吗? 如果不是,是否存在使用Python打开外部进程的另一种方法,该方法将允许脚本终止?

注意:我正在使用Python v3.6

不要使用subprocess.run ; 使用os.execl代替。 这使您的媒体播放器在当前过程中替换了Python代码,而不是开始一个新过程。

os.execl(MEDIA_PLAYER, p)

subprocess.run有效地执行了相同的操作,但首先进行分叉,以便暂时有两个进程在运行您的Python脚本; 在一种情况下, subprocess.run返回而没有做任何其他事情来允许您的脚本继续运行。 在另一种方法中,它立即使用os.exec*函数之一(共有8种)来执行媒体播放器。 在您的情况下,您只希望第一个进程退出,因此省去了分叉的工作,只需立即使用os.execl

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM