我这里有一个非常奇怪和令人困惑的问题。我试图使用VLC Media Player自动打开和关闭.wmv文件。我最初用来打开文件的代码效果很好:
# set directory
os.chdir("Path/to/folder/containing/wmvfiles")
# start the given file name
os.startfile("ExampleFileName.wmv")
然后,当我准备好完成播放时,我会使用以下代码关闭此视频
os.system("taskkill /im vlc.exe")
这很棒!但是......我需要它打开全屏。 Sooo,我用这个替换了我的初始代码来启动视频:
os.system
('""C:\Program Files\VideoLAN\VLC\\vlc.exe" -f "c:\videoFiles\\videoName.wmv""')
这很棒!它全屏打开,一切都很好。但是..... taskkill没有关闭这个过程。为了尽可能具体,此代码不会关闭它,VLC程序将保持打开状态:
# open the file in full screen
os.system
('""C:\Program Files\VideoLAN\VLC\\vlc.exe" -f "c:\videoFiles\\videoName.wmv""')
# close the file
os.system("taskkill /im vlc.exe")
很奇怪吧?情况变得更糟。当我以这种方式打开文件时:
os.system
('""C:\Program Files\VideoLAN\VLC\\vlc.exe" -f "c:\videoFiles\\videoName.wmv")
然后我转到命令提示符并输入
taskkill /im vlc.exe
关闭。我完全不知道为什么会这样:
os.system("taskkill /im vlc.exe")
仅当我以第一种方式(os.startfile)启动文件时以及直接从命令提示符运行命令时才有效。这可能是一个令人困惑的问题,但这是一个非常令人困惑的问题,任何帮助或意见将非常感谢,谢谢!
答案 0 :(得分:1)
不确定。但是,我不会使用os
,我会使用subprocess
。
类似的东西:
import shlex, subprocess
p = subprocess.Popen(shlex.split("cmd of some sort"))
#
# More code
#
p.terminate()
答案 1 :(得分:1)
更新: :使用vlc时,您可以使用其参数/命令,在播放视频后通过
vlc://quit
自行退出vlc。 :
import subprocess
vlc_path =r'C:\\Program Files (x86)\\VideoLAN\\VLC\\vlc.exe'
open_mp4 =r'C:\\video\\Lean On Me _ Playing For Change.mp4'
vlc_full =r'-f'
vlc_quit =r'vlc://quit'
subprocess.call([vlc_path]+[open_wmv]+[vlc_full]+[vlc_quit])
因此,如果您需要使用taskkill,可以通过添加 /f
= force并添加 import os
来更改命令:
import os
os.system('taskkill /f /im vlc.exe')
或者,要杀死vlc.exe创建的任何子进程,请添加
/t
os.system('taskkill /f /im vlc.exe /t')