Python 如何将视频无限添加到子流程

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

我知道标题不是很清楚。但是我找不到合适的方式来表达我的问题。让我解释一下:下面的代码可以完美地播放目录中的视频。然而,我的问题是,目录中的视频有如下名称:0.avi、1.avi、2.avi等等。。。正如您在代码中看到的,表示视频名称的n值在增加,而videofilesi也在增加。如果我找不到解决方案,我需要无限地编写这段代码。有人能帮我吗

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个参数调用命令,或者更确切地说,使用一些组合大小超过特定操作系统限制的参数调用命令。