下面详细讲解一下“python文件名批量重命名脚本实例代码”的完整攻略。
简要说明
批量重命名脚本是一种能够帮助我们快速批量修改多个文件名的工具,使用Python语言编写,具体实现思路是遍历指定的目录,对目录下的所有文件进行遍历,通过正则表达式匹配文件名,然后通过字符串的替换方法生成新的文件名,最后使用os模块中的rename方法对文件进行重命名。
实现步骤
- 导入必要的模块
我们需要使用os模块进行文件操作,同时re模块进行正则表达式匹配。
import os
import re
- 遍历指定目录
使用os.walk()方法可以遍历指定目录中的所有文件和子文件夹。
def walk_dir(root_dir):
for lists in os.listdir(root_dir):
path = os.path.join(root_dir,lists)
if os.path.isdir(path):
walk_dir(path)
else:
rename_file(path)
- 正则表达式匹配文件名
在扫描文件时,我们可以使用正则表达式来匹配需要修改的文件名。示例代码中是以“”为分隔符,将文件名按照“”分隔成多个部分,然后挑选需要修改的部分进行替换。
def rename_file(path):
if not os.path.isfile(path):
return
file_name = os.path.basename(path)
(name,ext) = os.path.splitext(file_name)
# 分割部分,选取要替换的部分
parts = name.split("_")
new_name = "new_{}".format(parts[-1]) # 替换了最后一个部分
new_file_name = os.path.join(os.path.dirname(path), new_name + ext)
os.rename(path, new_file_name)
- 执行重命名操作
得到新的文件名之后,使用os模块中的rename()方法就可以完成对文件名的修改操作了。
new_file_name = os.path.join(os.path.dirname(path), new_name + ext)
os.rename(path, new_file_name)
示例说明
假设我们有一个目录,其中有多个文件,文件名为“test_1.jpg”,“test_2.jpg”,“test_3.jpg”等形式。我们想要对这些文件名进行修改,将它们重命名为“new_1.jpg”,“new_2.jpg”,“new_3.jpg”。
import os
import re
def walk_dir(root_dir):
for lists in os.listdir(root_dir):
path = os.path.join(root_dir,lists)
if os.path.isdir(path):
walk_dir(path)
else:
rename_file(path)
def rename_file(path):
if not os.path.isfile(path):
return
file_name = os.path.basename(path)
(name,ext) = os.path.splitext(file_name)
# 分割部分,选取要替换的部分
parts = name.split("_")
new_name = "new_{}".format(parts[-1])
new_file_name = os.path.join(os.path.dirname(path), new_name + ext)
os.rename(path, new_file_name)
if __name__ == '__main__':
root_dir = "./test_folder"
walk_dir(root_dir)
在执行脚本之前,需要保证当前的工作目录下存在一个名为“test_folder”的目录,目录中包含需要修改文件名的文件。
执行以上代码,就可以将test_folder目录中的所有文件名修改成new_1.jpg,new_2.jpg,new_3.jpg形式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python文件名批量重命名脚本实例代码 - Python技术站