Python-subprocess.popen-使用它播放mp4';s路径

Python-subprocess.popen-使用它播放mp4';s路径,python,subprocess,popen,Python,Subprocess,Popen,我面临的问题是什么-我正在尝试使用subprocess.popen从文件路径运行mp4 详细信息-我最初尝试: 系统-它可以工作,但不接受字符串变量。或者我没有正确地将变量转换为字符串。我将在下面展示示例图片 subprocess.call-我无法从vlc运行mp4(我必须使用call,因为我必须使用python 2.7.18。我知道它很旧,但我一直在使用它的程序) subprocess.popen-我可以让subprocess.popen打开vlc播放器,但我无法让它使用vlc运行mp4。我不

我面临的问题是什么-我正在尝试使用subprocess.popen从文件路径运行mp4

详细信息-我最初尝试: 系统-它可以工作,但不接受字符串变量。或者我没有正确地将变量转换为字符串。我将在下面展示示例图片

subprocess.call
-我无法从vlc运行mp4(我必须使用call,因为我必须使用python 2.7.18。我知道它很旧,但我一直在使用它的程序)
subprocess.popen
-我可以让
subprocess.popen
打开vlc播放器,但我无法让它使用vlc运行mp4。我不确定这是否是一个争论的问题,或者我只是没有展示如何正确地写这篇文章

主要目标-我试图制作一个脚本,它会询问我想在我的计算机上搜索什么,输入我想搜索的内容后,找到它看到的第一件东西,然后运行它。我正在使用
os.walk
查找搜索中的第一个文件,我可以打印它,但无法从它找到的路径值执行

我当前的代码:

import os
import subprocess
def find(name):
    for root, dirs, files in os.walk('C:/Users/RKerrigan/Videos/w\\', followlinks=True):
        for file in files:
            if name in file:
                vlc='C:/Program Files/VideoLAN/VLC/vlc.exe'
                music=str(os.path.join(root,file))
                print(music)
                subprocess.popen([vlc])
                return
    print("Finish")
try:
    s=raw_input("name: ")
    find(s)
except Exception as e:
    print(e)
    print("Error")
本期图片-

我正在用一个非常简单的脚本尝试
subprocess.popen
,看看是否可以从文件路径运行mp4

我正在用一个非常简单的脚本尝试
subprocess.popen
,但使用了一个变量作为文件路径。VLC将打开,但没有
mp4
将打开。只有基本程序。

我正在用我正在编写的完整脚本尝试
subprocess.popen
。我使用
os.walk
查找它能找到的第一个文件,然后我尝试打印它并运行它找到的实际文件。但是,只有VLC打开,没有文件。

我正在用我正在编写的完整脚本尝试操作系统。我喜欢
os.system
,因为当我在文件路径中输入一个字符串时,它会工作。它将运行一个
mp4
没有问题,但是当我尝试使用
os.walk
获取我搜索的内容的值并将其用作它不执行的文件的路径时。此外,它不会像
subprocess.popen
那样给出错误。

我正在尝试
os.system
,但正在尝试
str
函数将值转换为字符串以供使用。-它对我仍然不起作用,或者我做错了。
您需要将第二个参数传递给popen

subprocess.popen([vlc, music])

此处的文档详细介绍了这一部分:

                vlc='C:/Program Files/VideoLAN/VLC/vlc.exe'
                music=str(os.path.join(root,file))
                print(music)
                subprocess.popen([vlc])
在循环的每次迭代中,您都将相同的字符串分配给
vlc
变量
'C:/Program Files/VideoLAN/vlc/vlc.exe'
,使得
subprocess.popen([vlc])
调用每次都执行完全相同的操作

合乎逻辑的做法是在调用中使用发现的路径
music


欢迎来到SO!最好链接python文档。这对我帮助很大!我确实做过(vlc,音乐),但一开始不起作用。我不知道为什么,但后来我查看了vlc,发现它是用\斜杠而不是/斜杠查看路径。我将popen改为([vlc,music]),然后让os.walk使用C:/而不是C:\进行操作,它成功了。非常感谢你!
                vlc='C:/Program Files/VideoLAN/VLC/vlc.exe'
                music=str(os.path.join(root,file))
                print(music)
                subprocess.popen([vlc, music])