Python 文件改名

Python 文件改名

Python 文件改名

介绍

在日常的开发工作中,经常会遇到需要对大量文件进行批量重命名的情况。在这种情况下,手动一个一个修改文件名是非常耗时耗力的。幸运的是,Python 提供了强大的文件系统操作功能,可以帮助我们自动化完成这个任务。本文将介绍如何使用Python对文件进行批量重命名。

准备工作

在开始编写代码之前,首先需要安装最新的Python版本。可以从Python官方网站下载并安装Python

导入模块

在Python中,我们使用os模块来处理文件和目录操作。os模块是Python标准库中的一个核心模块,无需额外安装即可使用。在代码的开头添加以下代码来导入os模块:

import os

获取文件列表

首先,我们需要获取待修改的文件列表。假设我们要将所有以.txt结尾的文件名中的old替换为new。可以使用os.listdir()函数获取指定目录下的文件列表。下面是获取当前目录下所有文件的代码示例:

file_list = os.listdir('.')

这里的.表示当前目录,你可以根据实际需要修改为其他目录。

文件名匹配

接下来,我们需要对文件名进行匹配,找出符合修改条件的文件名。Python提供了re模块,可以使用正则表达式来进行模式匹配。在这里,我们使用正则表达式来判断文件名是否以.txt结尾,以及是否包含old字符串。下面是匹配文件名的代码示例:

import re

pattern = r'.*\.txt$'
file_pattern = re.compile(pattern)
matched_files = [file for file in file_list if file_pattern.match(file)]

这里,pattern表示匹配.txt结尾的正则表达式,.*表示匹配任意字符任意次数。file_pattern使用re.compile()函数将正则表达式编译成模式对象,matched_files列表用于存储匹配到的文件名。

文件重命名

一旦找到符合修改条件的文件名,我们就需要对文件名进行修改。在Python中,使用os.rename()函数来重命名文件。下面是文件重命名的代码示例:

old_str = "old"
new_str = "new"

for file in matched_files:
    new_file = file.replace(old_str, new_str)
    os.rename(file, new_file)

这里,我们使用str.replace()函数来将文件名中的old替换为new。然后使用os.rename()函数将旧文件名修改为新文件名。

完整代码示例

下面是一个完整的Python文件改名程序的代码示例:

import os
import re

def rename_files(directory, old_str, new_str):
    file_list = os.listdir(directory)

    pattern = r'.*\.txt$'
    file_pattern = re.compile(pattern)
    matched_files = [file for file in file_list if file_pattern.match(file)]

    for file in matched_files:
        new_file = file.replace(old_str, new_str)
        os.rename(os.path.join(directory, file), os.path.join(directory, new_file))

if __name__ == "__main__":
    rename_files(".", "old", "new")

这个例子中,我们定义了一个rename_files()函数,该函数接受三个参数:目录路径、旧字符串和新字符串。在if __name__ == "__main__":下方调用了rename_files()函数来进行文件改名操作。

示例运行结果

假设当前目录下有三个文件:old_file.txtfile.txtold.txt。我们运行上述代码,将所有以.txt结尾的文件中的old替换为new。运行之后,文件名将被修改为:new_file.txtfile.txtnew.txt

结论

本文中,我们介绍了如何使用Python对文件进行批量重命名。通过简单的几行代码,我们可以轻松地实现文件名的修改操作。这在处理大量文件的时候非常有用,可以节省大量的时间和精力。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程