我制作了一个脚本,可以使用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
答案 0 :(得分:2)
请勿使用subprocess.run
;请改用os.execl
。这样一来,您的媒体播放器就会在当前进程中替换您的Python代码,而不是开始一个新进程。
os.execl(MEDIA_PLAYER, p)
subprocess.run
有效地执行了相同的操作,但首先进行派生,以便暂时有两个进程运行您的Python脚本;在一种情况下,subprocess.run
返回而没有做任何其他事情来允许您的脚本继续。在另一种方法中,它立即使用os.exec*
函数之一(有8种不同的函数)来执行媒体播放器。对于您而言,您只希望第一个进程退出,因此省去了分叉的工作,只需立即使用os.execl
。