Python 如何将视频无限添加到子流程
我知道标题不是很清楚。但是我找不到合适的方式来表达我的问题。让我解释一下:下面的代码可以完美地播放目录中的视频。然而,我的问题是,目录中的视频有如下名称:0.avi、1.avi、2.avi等等。。。正如您在代码中看到的,表示视频名称的n值在增加,而videofilesi也在增加。如果我找不到解决方案,我需要无限地编写这段代码。有人能帮我吗Python 如何将视频无限添加到子流程,python,path,vlc,popen,Python,Path,Vlc,Popen,我知道标题不是很清楚。但是我找不到合适的方式来表达我的问题。让我解释一下:下面的代码可以完美地播放目录中的视频。然而,我的问题是,目录中的视频有如下名称:0.avi、1.avi、2.avi等等。。。正如您在代码中看到的,表示视频名称的n值在增加,而videofilesi也在增加。如果我找不到解决方案,我需要无限地编写这段代码。有人能帮我吗 import definingName import numpy as np import cv2 import time import os import
import definingName
import numpy as np
import cv2
import time
import os
import random
import sys
import subprocess
import os.path
import glob
import vlc
from subprocess import Popen
n=0
c = 'c'
name = definingName.defName(c)
name = os.path.join(os.getcwd(), str(name))
videofilesi = os.path.join('file:///C:/Users/gulbe/PycharmProjects/untitled/venv/Lib',name,str(n)+".avi")
videofilesi2 = os.path.join('file:///C:/Users/gulbe/PycharmProjects/untitled/venv/Lib',name,str(n+1)+".avi")
videofilesi3 = os.path.join('file:///C:/Users/gulbe/PycharmProjects/untitled/venv/Lib',name,str(n+2)+".avi")
videofilesi4 = os.path.join('file:///C:/Users/gulbe/PycharmProjects/untitled/venv/Lib',name,str(n+3)+".avi")
videofilesi5 = os.path.join('file:///C:/Users/gulbe/PycharmProjects/untitled/venv/Lib',name,str(n+4)+".avi")
p = Popen(["C:/Program Files/VideoLAN/VLC/vlc.exe", videofilesi,videofilesi2,videofilesi3,videofilesi4,videofilesi5])
建立一个列表
base = 'file:///C:/Users/gulbe/PycharmProjects/untitled/venv/Lib'
files = [os.path.join(base, name, f"{n}.avi") for n in range(10)]
p = Popen(["C:/Program Files/VideoLAN/VLC/vlc.exe"] + files)
谢谢你,这正是我想要的。但是,我不能在这个范围内写出巨大的数字。例如,在范围内写10000是一种方法吗?你的意思是不能用大量参数调用vlc吗?我认为您需要一个播放列表,它允许vlc从文件中读取要播放的文件列表,而不是它的命令行参数。不过,我不确定从命令行如何工作。除非您在正确创建my_playlist.txt后仅使用[C:/…/vlc.exe,my_playlist.txt]。此代码在录制视频时从目录播放视频。所以,创建一个播放列表是行不通的,我只尝试了这种方法,给出了每个文件的编号等,解决了我的问题。我的意思是,在你的示例代码中,你为n编写了范围为10的代码,但是如果我想在那里写10000而不是10,程序就不能运行了,因为这个数字太大了。我能用某种方法解决这个问题吗?range10000很好用。问题是,显然,Popen调用vlc的参数列表的大小是有限的。这是一个你无法克服的操作系统限制,这就是为什么我建议找到命令行参数以外的方法来指定vlc应该打开哪些文件;如果您转到控制台并尝试键入vlc.exe 1.avi 2.avi。。。阿维,你也会有同样的问题。您无法使用10000个参数调用命令,或者更确切地说,使用一些组合大小超过特定操作系统限制的参数调用命令。