0

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

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

subprocess.call- 我无法让它从 vlc 运行 mp4(我必须使用调用,因为我必须使用 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编写我正在编写的完整脚本。os.system当我将字符串放入文件路径时,我喜欢它的工作原理。它会运行mp4没有问题,但是当我尝试获取我使用搜索的值os.walk并将其用作它不执行的文件的路径时。此外,它不会像那样给出错误subprocess.popen

我尝试os.system但尝试使用该str函数将值转换为字符串以供使用。- 它仍然对我不起作用,或者我做错了。

4

2 回答 2

1

仔细看看这部分:

                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])调用每次都执行完全相同的操作。

合乎逻辑的做法是在调用中使用发现的路径:musicpopen()

                vlc='C:/Program Files/VideoLAN/VLC/vlc.exe'
                music=str(os.path.join(root,file))
                print(music)
                subprocess.popen([vlc, music])
于 2020-12-22T02:35:23.003 回答
0

您需要将第二个参数传递给 popen

subprocess.popen([vlc, music])

这里的文档https://docs.python.org/2.7/library/subprocess.html#popen-constructor

于 2020-12-22T02:28:14.660 回答