Batch rename files with powerful patterns, regex support, and preview functionality. Use when organizing large numbers of files, standardizing naming conventions, adding timestamps, sequential numbering, or cleaning up messy filenames. Ideal for photo management, media libraries, log files, and project cleanup tasks.
支持模式、正则表达式和预览的强大批量文件重命名工具。
python
import os
import re
from datetime import datetime
def batch_rename(directory, pattern, replacement):
重命名匹配模式的文件
参数:
directory: 文件路径
pattern: 要匹配的正则表达式模式
replacement: 替换字符串
renamed = []
for filename in os.listdir(directory):
new_name = re.sub(pattern, replacement, filename)
if new_name != filename:
old_path = os.path.join(directory, filename)
newpath = os.path.join(directory, newname)
os.rename(oldpath, newpath)
renamed.append((filename, new_name))
return renamed
python
def number_files(directory, prefix=, digits=3, extension=None):
为文件添加序列编号
files = sorted([f for f in os.listdir(directory)
if extension is None or f.endswith(extension)])
renamed = []
for i, filename in enumerate(files, 1):
old_path = os.path.join(directory, filename)
ext = os.path.splitext(filename)[1]
new_name = f{prefix}{str(i).zfill(digits)}{ext}
newpath = os.path.join(directory, newname)
os.rename(oldpath, newpath)
renamed.append((filename, new_name))
return renamed
python
def addtimestamp(directory, dateformat=%Y%m%d):
为文件添加日期前缀
timestamp = datetime.now().strftime(date_format)
for filename in os.listdir(directory):
old_path = os.path.join(directory, filename)
name, ext = os.path.splitext(filename)
newname = f{timestamp}{name}{ext}
newpath = os.path.join(directory, newname)
os.rename(oldpath, newpath)
python
def preview_rename(directory, pattern, replacement):
预览更改而不实际重命名
changes = []
for filename in os.listdir(directory):
new_name = re.sub(pattern, replacement, filename)
if new_name != filename:
changes.append(f{filename} -> {new_name})
return changes
| 模式 | 描述 | 示例 |
|---|---|---|
| r^IMG(\d+) | 匹配IMG前缀 | IMG001.jpg |
| r\s+ |
python
def saferename(directory, pattern, replacement, dryrun=True):
带试运行选项的安全重命名
changes = []
for filename in os.listdir(directory):
new_name = re.sub(pattern, replacement, filename)
if new_name != filename:
changes.append((filename, new_name))
if dry_run:
print(试运行 - 将进行的更改:)
for old, new in changes:
print(f {old} -> {new})
return changes
else:
for old, new in changes:
os.rename(
os.path.join(directory, old),
os.path.join(directory, new)
)
return changes
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 batch-file-renamer-1776276477 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 batch-file-renamer-1776276477 技能
skillhub install batch-file-renamer-1776276477
文件大小: 2.23 KB | 发布时间: 2026-4-16 18:20