Python os.rename() 方法用于更改现有文件或目录的名称。如果新文件或目录名称已存在,则将引发 OSError。
要重命名文件或目录,我们需要将旧路径和新路径作为参数传递给 rename()。
语法
以下是 Python os.rename() 方法的语法 -
os.rename(src, dst, *, src_dir_fd, dst_dir_fd)
参数
Python os.rename() 接受两个参数,如下所示 -
- src − 这是文件或目录的现有名称。
- dst - 这是文件或目录的新名称。
- src_dir_fd − 此参数指定引用目录的文件描述符。
- dst_dir_fd − 它是引用目录的文件描述符。
返回值
Python os.rename() 方法不返回任何值。
例在以下示例中,我们使用 rename() 方法将名为 “qikepudir” 的目录重命名为 “qikepusdirectory”。
import os, sys
# listing directories
print ("The dir is: %s"%os.listdir(os.getcwd()))
# renaming directory "qikepudir"
os.rename("qikepudir","qikepudirectory")
print ("Successfully renamed")
# listing directories after renaming "qikepudir"
print ("the dir is: %s" %os.listdir(os.getcwd()))
当我们运行上述程序时,它会产生以下结果——
The dir is:
[ 'a1.txt','resume.doc','a3.py','qikepudir','amrood.admin' ]
Successfully renamed
The dir is:
[ 'a1.txt','resume.doc','a3.py','qikepudirectory','amrood.admin' ]
[ 'a1.txt','resume.doc','a3.py','qikepudir','amrood.admin' ]
Successfully renamed
The dir is:
[ 'a1.txt','resume.doc','a3.py','qikepudirectory','amrood.admin' ]
例
如果旧文件不存在,或者新文件已经存在,则 rename() 方法会抛出 “OSError”。以下示例说明了如何处理此类错误。
import os
try:
# renaming
os.rename("newdir", 'tpwork')
except FileNotFoundError:
print("The file or directory does not exist.")
except PermissionError:
print("you don't have permissions to rename the file")
except OSError as error:
print(f"Error: {error}")
当我们运行上述程序时,它会产生以下结果——
The file or directory does not exist.