Python视频处理中如何生成与输入视频同名的.txt文件?
实现输出TXT文件名与输入视频文件名一致的解决方案
我来帮你搞定这个需求!核心思路就是从输入视频的路径里提取出它的文件名(去掉视频格式后缀),然后把这个名字加上.txt后缀,作为输出文件的名字。下面是修改后的完整代码片段,我会逐行解释关键改动:
# 获取输入视频 import argparse import cv2 import os ap = argparse.ArgumentParser() ap.add_argument("-i", "--input", required=True, help="输入视频路径") ap.add_argument("-o", "--output", required=True, help="输出视频路径") args = vars(ap.parse_args()) # 从输入视频中捕获帧 vs = cv2.VideoCapture(args["input"]) # 写入输出文件夹及txt文件 outputfile_dir = os.path.join(os.getcwd(),'output') if not os.path.exists(outputfile_dir): os.makedirs(outputfile_dir) os.chmod(outputfile_dir , 0o777) # 关键修改部分:提取输入视频文件名并生成对应TXT文件名 # 1. 获取输入视频的完整文件名(含扩展名) video_full_name = os.path.basename(args["input"]) # 2. 拆分文件名和扩展名,只保留名字部分 video_name, _ = os.path.splitext(video_full_name) # 3. 拼接输出目录和新的TXT文件名 outputFilename = os.path.join(outputfile_dir, f"{video_name}.txt")
关键改动说明:
- 使用
os.path.basename(args["input"]):从输入路径中提取出视频的完整文件名(比如输入路径是./videos/demo.mp4,这一步会得到demo.mp4) - 使用
os.path.splitext(video_full_name):把文件名拆分成名字和扩展名两部分,这里我们只需要名字部分(demo),扩展名用下划线_忽略即可 - 用f-string拼接成最终的TXT文件名:
f"{video_name}.txt",这样就得到了和输入视频同名的TXT文件(比如demo.txt)
这样修改后,不管你输入的视频文件名是什么,生成的TXT文件都会和它完全同名,完美满足你的需求!
内容的提问来源于stack exchange,提问作者Happypumpkin pm
相关产品推荐
相关产品推荐

