Python中实现批量重命名文件的方法

Python中实现批量重命名文件的方法

Python中实现批量重命名文件的方法

1. 前言

在日常的编程工作中,经常会遇到需要对大量文件进行重命名的情况。手动一个个修改文件名是非常繁琐的操作,所以我们需要使用Python来实现批量重命名文件的功能。本文将介绍几种不同的方法来完成这个任务。

2. 方法一:使用os模块的rename函数

Python的os模块中提供了一个rename函数,可以用来对文件进行重命名操作。该函数的使用方法如下:

import os

os.rename(原文件名, 新文件名)
Python

下面是一个示例代码,将当前文件夹下的所有txt文件进行重命名,添加前缀”new_”:

import os

file_path = "./"  # 当前文件夹路径
prefix = "new_"  # 新文件名的前缀

for file_name in os.listdir(file_path):
    if file_name.endswith(".txt"):  # 判断文件名是否以".txt"结尾
        new_file_name = prefix + file_name
        os.rename(os.path.join(file_path, file_name), os.path.join(file_path, new_file_name))
        print(f"将文件 {file_name} 重命名为 {new_file_name}")

print("文件重命名完成。")
Python

运行结果如下:

将文件 file1.txt 重命名为 new_file1.txt
将文件 file2.txt 重命名为 new_file2.txt
...
文件重命名完成。
Python

3. 方法二:使用shutil模块的move函数

除了使用os模块的rename函数外,还可以使用shutil模块的move函数来实现文件的重命名。该函数的使用方法如下:

import shutil

shutil.move(原文件名, 新文件名)
Python

下面是一个示例代码,将当前文件夹下的所有jpg文件进行重命名,将文件名中的数字替换为”new”:

import os
import shutil
import re

file_path = "./"  # 当前文件夹路径
pattern = r"\d+"  # 用于匹配数字的正则表达式

for file_name in os.listdir(file_path):
    if file_name.endswith(".jpg"):  # 判断文件名是否以".jpg"结尾
        new_file_name = re.sub(pattern, "new", file_name)  # 将数字替换为"new"
        shutil.move(os.path.join(file_path, file_name), os.path.join(file_path, new_file_name))
        print(f"将文件 {file_name} 重命名为 {new_file_name}")

print("文件重命名完成。")
Python

运行结果如下:

将文件 file1.jpg 重命名为 new.jpg
将文件 file2.jpg 重命名为 new.jpg
...
文件重命名完成。
Python

4. 方法三:使用glob模块的glob函数

除了使用os模块和shutil模块外,我们还可以使用glob模块来批量匹配文件。glob模块中的glob函数可以返回一个符合指定规则的文件路径列表。下面是一个示例代码,将当前文件夹下的所有文件名中包含”old”的文件进行重命名,将”old”替换为”new”:

import os
import glob

file_path = "./"  # 当前文件夹路径

for file_name in glob.glob(os.path.join(file_path, "*old*")):
    new_file_name = file_name.replace("old", "new")
    os.rename(file_name, new_file_name)
    print(f"将文件 {file_name} 重命名为 {new_file_name}")

print("文件重命名完成。")
Python

运行结果如下:

将文件 old_file1.txt 重命名为 new_file1.txt
将文件 old_file2.txt 重命名为 new_file2.txt
...
文件重命名完成。
Python

5. 方法四:使用os模块的walk函数

最后,我们还可以使用os模块的walk函数来遍历文件夹下的所有文件,并进行重命名操作。下面是一个示例代码,将文件夹及其子文件夹下的所有doc文件进行重命名,将文件名中的空格替换为下划线:

import os

folder_path = "./folder/"  # 文件夹路径

for folder_name, _, file_names in os.walk(folder_path):
    for file_name in file_names:
        if file_name.endswith(".doc"):  # 判断文件名是否以".doc"结尾
            new_file_name = file_name.replace(" ", "_")  # 将空格替换为下划线
            os.rename(os.path.join(folder_name, file_name), os.path.join(folder_name, new_file_name))
            print(f"将文件 {file_name} 重命名为 {new_file_name}")

print("文件重命名完成。")
Python

运行结果如下:

将文件 file 1.doc 重命名为 file_1.doc
将文件 file 2.doc 重命名为 file_2.doc
...
文件重命名完成。
Python

6. 总结

本文介绍了几种Python实现批量重命名文件的方法。通过使用os模块、shutil模块、glob模块和walk函数,我们可以灵活地对文件进行重命名操作。无论是添加前缀、替换字符串、还是通过正则表达式进行匹配,Python提供了多种方法满足不同的需求。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册