python - 无法使用带有 os.system 的 taskkill 来终止 VLC.exe

标签 python cmd vlc os.system taskkill

我这里有一个非常奇怪和令人困惑的问题。我正在尝试使用 VLC 媒体播放器自动打开和关闭 .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) 以及直接从命令提示符运行命令时才有效。这可能是一个令人困惑的问题,但这是一个非常令人困惑的问题,任何帮助或意见将不胜感激,谢谢!

最佳答案

不确定。但是,我不会使用 os,我会使用 subprocess

类似于:

import shlex, subprocess
p = subprocess.Popen(shlex.split("cmd of some sort"))
#
# More code
#
p.terminate()

关于python - 无法使用带有 os.system 的 taskkill 来终止 VLC.exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41862369/

相关文章:

python - 我可以将 libVLC 的 Python 绑定(bind)与 Python 3.x 一起使用吗?

python - Telegram API 要求用户确认

python - 导入错误: No module named parse - Python 3

python - 如何让 pyflakes 在 Windows 上运行?

python - 如何检测我的 python 代码是否在 PowerShell 或命令提示符 (cmd) 中运行

iphone - iOS - 为 iOS 构建 VLC - 请安装所需的 SDK,或手动设置 SDKROOT

python - Keras model.fit() 与 tf.dataset API + validation_data

batch-file - 批处理文件 : Typewriter Effect

java - java代码中如何调用Tomcat的startup.bat

java - 如何使用 JVLC(VLC 的 Java 绑定(bind))?