当前位置: 首页 > 工具软件 > OS.js > 使用案例 >

os.rename和os.renames区别

况安然
2023-12-01

os.rename和os.renames区别

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
 类似资料: