[英]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.