欢迎访问宙启技术站
智能推送

使用Python编写一个简单的批量重命名工具

发布时间:2023-12-04 12:39:34

编写一个简单的批量重命名工具,可以通过命令行参数指定文件名的规则和需要重命名的文件目录。

该工具使用Python编写,可以使用argparse模块来处理命令行参数,并使用os模块来进行文件操作。

以下是一个示例代码:

import os
import argparse

def rename_files(directory, rule):
    for filename in os.listdir(directory):
        if os.path.isfile(os.path.join(directory, filename)):
            new_filename = rule.replace('*', filename)
            os.rename(os.path.join(directory, filename), os.path.join(directory, new_filename))
            print(f"Renamed file {filename} to {new_filename}")

def main():
    parser = argparse.ArgumentParser(description='Batch rename tool')
    parser.add_argument('directory', help='The directory where the files are located')
    parser.add_argument('rule', help='The renaming rule (use * as a placeholder for the file name)')
    args = parser.parse_args()

    directory = args.directory
    rule = args.rule

    if not os.path.isdir(directory):
        print('Invalid directory')
        return

    rename_files(directory, rule)

if __name__ == '__main__':
    main()

在上面的代码中,首先导入了必要的模块,包括os模块用于文件操作和argparse模块用于处理命令行参数。

然后定义了一个rename_files函数,该函数接受一个目录和一个规则作为参数。对于目录中的每个文件,使用规则中的*来替换文件名,然后使用os.rename函数进行重命名操作。

接下来,定义了main函数,使用argparse模块创建了一个命令行解析器,并定义了两个必需的参数:目录和规则。然后通过调用parse_args方法解析命令行参数,并将参数值赋给directoryrule变量。

最后,在main函数中检查目录是否存在,若不存在则打印错误信息,否则调用rename_files函数进行批量重命名。

具体使用方法如下:

假设你的代码保存为rename_tool.py,并且你想将目录/path/to/files/中的所有文件名前缀改为new_,你可以使用以下命令来运行:

python rename_tool.py /path/to/files/ new_*

该命令将对目录/path/to/files/中的所有文件名进行重命名,将文件名前缀改为new_。运行结果将打印每次重命名的文件名和新文件名。