Python os.renames() 方法详解

  • Post category:Python

Python中os.renames()的作用和使用方法

Python中的os.renames()方法用于重命名(移动)文件和目录,具有递归性质,可递归地更改文件夹中的文件名(目录名),也可以将文件(目录)移到另一个目录中。

语法

os.renames(src, dst)

参数

  • src: 需要修改的文件或目录名
  • dst: 新的文件或目录名,当目录不存在时,创建新目录

注意事项

  • 如果目标存在,不能移动目标文件
  • 表示路径的参数必须被传入,否则函数将抛出ValueError异常

示例

import os

# 文件重命名
os.renames('oldname.txt', 'newname.txt')

# 目录重命名
os.renames('oldDir', 'newDir')

# 文件移动
os.renames('fromDir/filename.txt', 'toDir/filename.txt')

# 目录移动
os.renames('fromDir', 'toDir/newDir')

在这个示例中,os.renames()述语的第一个参数是旧的文件名或目录名,第二个参数是新的文件名或目录名。如果要移动文件或目录,则添加目标路径的名称到第二个参数中。

递归示例

下面的示例演示了如何递归更改目录中所有文件和目录的名称:

import os

def change_dir_name(dirname, oldname, newname):
    for dirpath, dirnames, filenames in os.walk(dirname):
        if oldname in dirnames:
            os.renames(os.path.join(dirpath, oldname), os.path.join(dirpath, newname))
        for filename in filenames:
            if oldname in filename:
                os.renames(os.path.join(dirpath, filename), os.path.join(dirpath, filename.replace(oldname, newname)))

change_dir_name('test_dir', 'oldname', 'newname')

该函数中,os.walk()将迭代指定的目录,并返回包含目录名称、子目录名称和文件名称的元组。在该函数中,我们利用递归方式将文件和目录重命名为指定的新名称。

总结

os.renames()是Python中一个非常有用的功能,并且可以用于重命名(移动)文件和目录,具有递归特性,适用于递归地更改文件夹中的文件名(目录名),也可以将文件目录移动到另一个目录中。在使用时,一定要注意目标文件是否存在,并且正确传递参数路径。