文件夹或者文件名称批量修改(python)

Southerly
2023-05-25 / 0 评论 / 108 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年05月30日,已超过345天没有更新,若内容或图片失效,请留言反馈。

当你需要将多个文件名中的某个字符或字符串替换为另一个字符或字符串时,你可以写一个简单的 Python 脚本来实现这个任务。这篇文章将介绍一个使用 os 模块实现的简单文件重命名脚本。

第一步:导入 os 模块

在 Python 中,os 模块提供了访问文件系统的函数。为了在 Python 脚本中使用 os 模块,我们需要导入该模块:

import os

第二步:获取当前脚本所在目录

在这个脚本中,我们需要获取当前脚本所在目录。Python 提供了 os.path 模块来处理目录和路径。我们可以使用 os.path.abspath(__file__) 函数来获取当前脚本的绝对路径,然后使用 os.path.dirname() 函数获得当前脚本所在的目录路径。这里的代码如下:

dirpath = os.path.dirname(os.path.abspath(__file__))

其中,__file__ 变量代表当前脚本的文件名(包括路径)。

第三步:输入旧字符串和新字符串

接下来,我们需要从用户处获取旧字符串和新字符串。我们可以使用 input() 函数来获得用户输入:

old_string = input("请输入需要替换的旧字符串:")
new_string = input("请输入替换成的新字符串:")

这里,input() 函数将提示用户输入旧字符串和新字符串,并将其存储在 old_stringnew_string 变量中。

第四步:重命名文件

接下来,我们可以使用 os.listdir() 函数枚举目录中的所有文件和文件夹,并使用 os.rename() 函数将其重命名为新名称。

for filename in os.listdir(dirpath):
    # 构造旧的文件路径以及新的文件路径
    old_filepath = os.path.join(dirpath, filename)
    new_filepath = os.path.join(dirpath, filename.replace(old_string, new_string))

    # 如果旧文件路径与新文件路径相同,则跳过
    if old_filepath == new_filepath:
        continue

    # 判断文件是否为文件夹
    if os.path.isdir(old_filepath):
        # 重命名文件夹
        os.rename(old_filepath, new_filepath)
    else:
        # 重命名文件
        os.rename(old_filepath, new_filepath)

这里,os.rename() 函数接受两个参数:旧文件名和新文件名。如果需要重命名文件夹,我们应该先递归地重命名子文件夹和子文件,然后再重命名当前文件夹的名称。

第五步:输出完成信息

最后,我们可以输出一个完成信息来提示用户脚本已经完成执行。

print("完成!")

完整代码

下面是这个简单的 Python 文件重命名脚本的完整代码:

import os

# 获取当前脚本所在目录
dirpath = os.path.dirname(os.path.abspath(__file__))

# 获取要替换的旧字符串和替换成的新字符串
old_string = input("请输入需要替换的旧字符串:")
new_string = input("请输入替换成的新字符串:")

for filename in os.listdir(dirpath):
    # 构造旧的文件路径以及新的文件路径
    old_filepath = os.path.join(dirpath, filename)
    new_filepath = os.path.join(dirpath, filename.replace(old_string, new_string))

    # 如果旧文件路径与新文件路径相同,则跳过
    if old_filepath == new_filepath:
        continue

    # 判断文件是否为文件夹
    if os.path.isdir(old_filepath):
        # 重命名文件夹
        os.rename(old_filepath, new_filepath)
    else:
        # 重命名文件
        os.rename(old_filepath, new_filepath)

print("完成!")

效果如图
li376ckj.png
若需要循环替换,在获取脚本所在路径后面加一句

while True:
本文共 692 个字数,平均阅读时长 ≈ 2分钟
3

海报

打赏

评论 (0)

语录
取消