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

使用FileInput()函数批量重命名文件的方法

发布时间:2024-01-05 20:30:58

使用FileInput()函数可以批量重命名文件的方法如下:

1. 导入必要的模块

import os
from fileinput import FileInput

2. 定义一个批量重命名的函数

def rename_files(file_pattern, replace_str):
    with FileInput(file_pattern, inplace=True, backup='.bak') as f:
        for line in f:
            print(line.replace(replace_str), end='')

3. 使用示例

假设你有一个文件夹包含多个文件,这些文件都以 .txt 结尾,并且你想要将文件名中的 "old" 字符串替换为 "new"。

# 定义文件夹路径和要替换的字符串
folder_path = '/path/to/folder/'
replace_str = 'old'
new_str = 'new'

# 获取文件夹中所有以 .txt 结尾的文件
files = [f for f in os.listdir(folder_path) if f.endswith('.txt')]

# 遍历文件列表,使用 FileInput() 函数进行重命名
for file in files:
    file_path = os.path.join(folder_path, file)
    rename_files(file_path, replace_str, new_str)

在上述例子中,folder_path 是包含要重命名文件的文件夹的路径,replace_str 是要被替换的原始字符串,new_str 是替换后的新字符串。

运行该代码后,该文件夹中所有以 .txt 结尾的文件的 "old" 字符串将被替换为 "new"。例如,文件名 "example_old.txt" 将被重命名为 "example_new.txt"。原始文件会被备份为同名文件,但后缀为 ".bak"(可通过参数 backup='.bak' 调整备份文件的后缀)。

这就是使用FileInput()函数批量重命名文件的方法,它可以方便地在代码中批量修改文件名而无需手动重命名每个文件。