Python - subprocess.popen - 使用它的路径播放 mp4
Python - subprocess.popen - play mp4 using it's path
我面临的问题是什么- 我正在尝试使用 subprocess.popen.
从文件路径 运行 一个 mp4
详情-我原来试过:
os.system - 它有效,但它不接受字符串变量。或者我没有将我的变量正确转换为字符串。我将在下面展示示例图片。
subprocess.call
- 我无法从 vlc 将其传输到 运行 mp4(我必须使用 call,因为我必须使用 python 2.7.18。我知道它旧的,但我坚持使用它来尝试使用它的程序)
subprocess.popen
- 我能够 subprocess.popen
打开 vlc 播放器,但我无法使用 vlc 将其制作成 运行 mp4。我不确定这是否是一个参数问题,或者我只是没有展示如何正确编写它。
主要目标 - 我正在尝试制作一个脚本,它询问我想在我的计算机上搜索什么,然后在我输入我想搜索的内容之后找到它看到的第一件事,然后 运行s 它。我正在使用 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
函数将值转换为字符串以供使用。 - 它仍然对我不起作用,或者我做错了。
您需要将第二个参数传递给 popen
subprocess.popen([vlc, music])
这里有文档https://docs.python.org/2.7/library/subprocess.html#popen-constructor
仔细看这部分:
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
,在popen()
调用中:
vlc='C:/Program Files/VideoLAN/VLC/vlc.exe'
music=str(os.path.join(root,file))
print(music)
subprocess.popen([vlc, music])
我面临的问题是什么- 我正在尝试使用 subprocess.popen.
从文件路径 运行 一个 mp4详情-我原来试过: os.system - 它有效,但它不接受字符串变量。或者我没有将我的变量正确转换为字符串。我将在下面展示示例图片。
subprocess.call
- 我无法从 vlc 将其传输到 运行 mp4(我必须使用 call,因为我必须使用 python 2.7.18。我知道它旧的,但我坚持使用它来尝试使用它的程序)
subprocess.popen
- 我能够 subprocess.popen
打开 vlc 播放器,但我无法使用 vlc 将其制作成 运行 mp4。我不确定这是否是一个参数问题,或者我只是没有展示如何正确编写它。
主要目标 - 我正在尝试制作一个脚本,它询问我想在我的计算机上搜索什么,然后在我输入我想搜索的内容之后找到它看到的第一件事,然后 运行s 它。我正在使用 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
函数将值转换为字符串以供使用。 - 它仍然对我不起作用,或者我做错了。
您需要将第二个参数传递给 popen
subprocess.popen([vlc, music])
这里有文档https://docs.python.org/2.7/library/subprocess.html#popen-constructor
仔细看这部分:
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
,在popen()
调用中:
vlc='C:/Program Files/VideoLAN/VLC/vlc.exe'
music=str(os.path.join(root,file))
print(music)
subprocess.popen([vlc, music])