Python 脚本优化:修改输出文件名,截取特定前缀后的字符串
Python 脚本优化:修改输出文件名,截取特定前缀后的字符串
该脚本用于修改输出文件命名,主要针对以 'h_' 或 'h_00' 开头的文件名进行截取,并截取到最后一个英文字母之前。
import os
import glob
from natsort import natsorted
# ... (省略之前的代码)
# 修改后的输出文件命名代码
for mp4_file in glob.glob(os.path.join(output_dir, '*.mp4')):
file_name = os.path.splitext(os.path.basename(mp4_file))[0][1:]
if file_name.startswith('h_'):
file_name = file_name[2:].replace('00', '-', 1)
if file_name.startswith('0'):
file_name = file_name[1:]
else:
file_name = file_name.replace('00', '-', 1)
file_name = file_name.strip('0123456789.-_')
# 截取到最后一个英文字母之前
new_file_name = ''
for i in range(len(file_name)-1, -1, -1):
if file_name[i].isalpha():
new_file_name = file_name[:i]
break
new_file_name += '.mp4'
os.rename(mp4_file, os.path.join(output_dir, new_file_name))
代码解释:
-
循环遍历输出目录下的所有 .mp4 文件:
for mp4_file in glob.glob(os.path.join(output_dir, '*.mp4')): -
获取文件名并去除第一个字符:
file_name = os.path.splitext(os.path.basename(mp4_file))[0][1:] -
处理 'h_' 或 'h_00' 开头的文件名:
if file_name.startswith('h_'): file_name = file_name[2:].replace('00', '-', 1) if file_name.startswith('0'): file_name = file_name[1:] else: file_name = file_name.replace('00', '-', 1)- 如果文件名以 'h_' 开头,则从第三个字符开始截取,并将 '00' 替换为 '-',如果截取后第一个字符为 '0' 则再将其移除。
- 如果文件名不以 'h_' 开头,则直接将 '00' 替换为 '-'。
-
去除文件名中的数字、点、减号、下划线:
file_name = file_name.strip('0123456789.-_') -
截取到最后一个英文字母之前:
new_file_name = '' for i in range(len(file_name)-1, -1, -1): if file_name[i].isalpha(): new_file_name = file_name[:i] break- 从文件名末尾开始遍历,找到第一个字母,并将该字母之前的部分作为新的文件名。
-
添加文件扩展名并重命名文件:
new_file_name += '.mp4' os.rename(mp4_file, os.path.join(output_dir, new_file_name))
使用方法:
- 将代码中的
dir_path和output_dir变量替换为实际的目录路径。 - 将脚本保存在需要执行的目录下,并运行该脚本。
注意事项:
- 此脚本仅针对特定格式的文件名进行处理,对于其他格式的文件名可能需要修改代码。
- 确保脚本运行目录中存在要修改的文件。
- 脚本执行完毕后,会将原文件重命名为新的文件名。
- 使用前请备份重要数据,以防意外数据丢失。
原文地址: https://www.cveoy.top/t/topic/nC8e 著作权归作者所有。请勿转载和采集!