如何修改Python脚本提取MP4文件名前缀数字写入CSV?
修改后的Python脚本实现方案
以下是适配你需求的修改版代码,解决了原代码未筛选MP4文件、未提取前缀数字、CSV格式不符合要求的问题:
import os import csv import re # 替换为你的目标文件夹路径和输出CSV文件名 target_directory = '指定文件夹路径' output_file = '前缀数字结果.csv' def get_prefix_number(filename): # 匹配文件名开头的连续数字序列 num_match = re.match(r'^\d+', filename) return num_match.group() if num_match else '' with open(output_file, 'w', newline='', encoding='utf-8') as csv_file: csv_writer = csv.writer(csv_file) # 写入首行的0 csv_writer.writerow([0]) # 遍历所有子文件夹和文件 for root, _, files in os.walk(target_directory): for file in files: # 仅处理MP4文件(忽略大小写) if file.lower().endswith('.mp4'): prefix_num = get_prefix_number(file) # 提取到数字则写入CSV,若需保留无数字的文件可去掉此判断 if prefix_num: csv_writer.writerow([prefix_num])
关键修改说明:
- 筛选MP4文件:通过
file.lower().endswith('.mp4')兼容不同大小写的MP4后缀(如.MP4、.Mp4) - 提取前缀数字:使用正则表达式
re.match(r'^\d+', filename)精准匹配文件名开头的连续数字,确保只提取前缀部分 - CSV格式调整:首行写入
[0],后续每行仅写入提取到的数字;使用newline=''避免Windows系统下CSV出现多余空行,指定utf-8编码保证兼容性 - 可选优化:如果需要保留无前缀数字的MP4文件记录,可删除
if prefix_num:判断,直接写入空字符串
内容的提问来源于stack exchange,提问作者dtr43
相关产品推荐
相关产品推荐

