我在这里有一个非常奇怪和困惑的问题。我正在尝试使用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")
效果很好!但是……我需要它才能全屏打开。如此,我用以下代码替换了我的初始代码以开始播放视频:
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)以及直接从命令提示符运行命令时有效。这可能是一个令人困惑的问题,但这是一个非常令人困惑的问题,非常感谢您的帮助或投入,谢谢!
不确定。但是,我不会使用os
,而是会使用subprocess
。
类似:
import shlex, subprocess
p = subprocess.Popen(shlex.split("cmd of some sort"))
#
# More code
#
p.terminate()
[Update:使用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_mp4]+[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')