如何将文件搜索结果传入VideoFileClip()函数?
问题解决方法
核心问题
glob("*.mp4")返回的是匹配到的所有MP4文件路径的列表,而VideoFileClip()只接受单个字符串格式的文件路径,直接传入列表或把列表转成字符串都会导致错误:
- 直接传列表:类型不匹配,触发参数类型错误
- 转成字符串:得到的是类似
"['file.mp4']"的无效路径,程序找不到文件
正确处理方式
情况1:当前目录只有目标MP4文件(file.mp4)
直接取列表的第一个元素即可,同时建议先判断是否匹配到文件,避免索引越界:
from glob import glob from moviepy.editor import VideoFileClip mp4_files = glob("*.mp4") if mp4_files: clip = VideoFileClip(mp4_files[0]) s = clip.duration clip.close() else: print("当前目录未找到MP4文件")
情况2:需要精确匹配file.mp4
直接指定文件名进行精确搜索,避免匹配到其他MP4文件:
from glob import glob from moviepy.editor import VideoFileClip # 精确匹配file.mp4,返回的列表最多只有一个元素 mp4_file = glob("file.mp4")[0] clip = VideoFileClip(mp4_file) s = clip.duration clip.close()
内容的提问来源于stack exchange,提问作者Vahid Hosseini
相关产品推荐
相关产品推荐

