我用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
发布于 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
即可。
https://stackoverflow.com/questions/51198746
复制相似问题