Python os.rename() 方法详解

  • Post category:Python

Python os.rename() 函数可以用于重命名文件和目录,其作用是将传入的源文件(或目录)名更改为目标文件(或目录)名。在重命名文件或目录时,可以通过这个函数去实现,而不需要手动地通过操作系统来完成。

函数原型

Python os.rename() 函数的函数原型如下所示:

os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)

其中:

  • src:表示原文件或目录的路径;
  • dst:表示更改后的文件或目录的路径;
  • src_dir_fd:指向原文件或目录的文件描述符;
  • dst_dir_fd:指向更改后的文件或目录的文件描述符。

参数使用方法如下:

  • srcdst 参数,可以使用相对路径或绝对路径,如果只是改变文件名可以在同级文件夹下直接更改,但改变文件夹名需要考虑路径问题。
  • src_dir_fddst_dir_fd 参数,是与 src 和 dst 参数配合使用的。如果同时传递了两个参数,则 src 和 dst 参数会被视为相对于 src_dir_fd 和 dst_dir_fd 所指示的目录的路径。

注意事项

当使用 os.rename() 函数来进行文件或目录重命名时,需要注意以下几个方面:

  • 如果命名冲突:如果目标文件已经存在,则无法重命名,并且会抛出 FileExistsError 异常;
  • 如果找不到源文件:如果找不到源文件,则会抛出 FileNotFoundError 异常;
  • 如果 src 和 dst 在不同的文件系统上,则重命名操作也可能失败。

示例

以下是一个简单的示例程序,演示了如何使用 os.rename() 函数来重命名文件:

import os

# 假设我们要将文件 test1.txt 重命名为 test2.txt
os.rename('test1.txt', 'test2.txt')

以上代码会将当前工作路径下的 test1.txt 文件重命名为 test2.txt 文件。

以下是一个示例程序,演示了如何使用 os.rename() 函数来重命名目录:

import os

# 假设我们要将目录 dir1 重命名为 dir2
os.rename('dir1', 'dir2')

以上代码会将当前工作路径下的 dir1 目录重命名为 dir2 目录。

权限问题

在 Linux 和 UNIX 系统中,如果当前用户没有对目标文件或目录的写入或执行权限,那么就无法使用 os.rename() 函数来进行文件或目录重命名操作。

使用 Linux 和 UNIX 系统时出现此类问题,请用 chmod 命令为目标文件或目录添加写入或执行权限。例如,以下命令将给 example.py 文件添加写入和执行权限:

chmod +wx example.py

结论

Python os.rename() 函数是一个十分强大的重命名函数,可以将文件和目录重命名为其他名称。这个函数在文件管理和文件操作中非常实用,特别是在文件批处理的时候,可以用来自动化处理大量重命名操作。