首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在运行子进程后立即杀死Python脚本?

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

Stack Overflow用户
提问于 2018-07-06 03:39:09
回答 1查看 157关注 0票数 0

我用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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-06 03:48:02

不要使用subprocess.run;请使用os.execl。这使您的媒体播放器替换当前进程中的Python代码,而不是启动一个新进程。

os.execl(MEDIA_PLAYER, p)

Python实际上做了同样的事情,但是subprocess.run首先派生,以便暂时有两个进程运行您的Python脚本;在其中一个进程中,subprocess.run不执行任何其他操作就返回,以允许您的脚本继续运行。在另一种情况下,它会立即使用os.exec*函数之一--有8种不同的函数--来执行你的媒体播放器。在您的例子中,您只想让第一个进程退出,所以省去了派生的工作,直接使用os.execl即可。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51198746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档