1、os.rename(old_file_path, new_file_path), 只能对相应的文件进行重命名, 不能重命名文件的上级目录名.
2、os.renames(old_file_path, new_file_path), 是os.rename的升级版, 既可以重命名文件, 也可以重命名文件的上级目录名
从源码分析:
def renames(old, new):
# 使用path.split将新目录拆分为head(文件目录),tail(文件名称)
head, tail = path.split(new)
# 判断文件目录、文件名称不为空及文件目录不存在
if head and tail and not path.exists(head):
# 文件目录不存在则创建
makedirs(head)
# 此时调用了rename,则说明在此基础上扩展
rename(old, new)
# 使用path.split将旧目录拆分为head(文件目录),tail(文件名称)
head, tail = path.split(old)
# 判断文件目录、文件名称不为空
if head and tail:
try:
# 删除旧目录
removedirs(head)
except OSError:
pass