python中可用四类单行代码批量重命名文件:一、os.listdir+os.rename添加前缀;二、pathlib安全重命名仅文件;三、glob匹配特定扩展名替换;四、enumerate实现序号编号重命名。

如果您需要在Python中快速对文件夹内的多个文件进行重命名操作,可以通过简洁的单行代码实现基础批量重命名逻辑。以下是几种可行的方法:
一、使用os.listdir与os.rename组合的一行式循环
该方法利用列表推导式配合os.rename,在单行中遍历指定路径下的所有文件并按规则重命名,适用于简单编号或前缀添加场景。
1、确保目标文件夹路径已知,例如为"./docs";
2、确认当前Python脚本对该路径具有读写权限;
3、执行以下单行代码:import os; [os.rename(f, f'new_{f}') for f in os.listdir('./docs') if os.path.isfile(os.path.join('./docs', f))];
4、该语句将为"./docs"目录下每个文件名前添加"new_"前缀。
二、借助pathlib实现更安全的单行重命名
pathlib提供了面向对象的路径操作方式,能自动区分文件与子目录,避免误操作,适合需过滤类型的安全批量重命名。
1、导入pathlib模块;
2、设定目标文件夹路径,如Path("./data");
3、执行以下单行代码:from pathlib import Path; [f.rename(f.parent / f'v2_{f.name}') for f in Path('./data').iterdir() if f.is_file()];
4、该语句仅重命名"./data"中所有普通文件,跳过子文件夹,并统一添加"v2_"前缀。
三、使用glob模块匹配特定扩展名后单行重命名
当只需处理某一类文件(如所有.txt文件)时,glob可精准定位目标,减少干扰,提升操作准确性。
1、导入glob和os模块;
2、指定含通配符的路径模式,例如"./logs/*.txt";
3、执行以下单行代码:import glob, os; [os.rename(f, f.replace('.txt', '_backup.txt')) for f in glob.glob('./logs/*.txt')];
4、该语句将"./logs/"下所有.txt文件扩展名替换为"_backup.txt"。
四、基于enumerate实现带序号的单行重命名
若需将文件按顺序重命名为"001.jpg"、"002.jpg"等格式,可结合enumerate生成索引,并用zfill统一补零位数。
1、确定目标目录及目标扩展名,如"./images/"下的.jpg文件;
2、确保目标目录中无同名文件,防止覆盖;
3、执行以下单行代码:import os; [os.rename(f, os.path.join('./images', f'{i:03d}.jpg')) for i, f in enumerate(sorted([os.path.join('./images', x) for x in os.listdir('./images') if x.endswith('.jpg')]))];
4、该语句按字母序排列.jpg文件,再依次重命名为三位数字编号格式。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










