Python os.rename()函数:重命名文件或目录

os 模块提供了重命名文件和目录的函数 rename(),如果指定的路径是文件,则重命名文件;反之,如果执行的路径是目录,则重命名目录。

rename() 函数的基本语法格式如下:

os.rename(src , dst)

其中,src 参数用于指定要进行重命名的目录或文件;dst 参数用于指定重命名后的目录或文件。

例如,将 a.txt 文件(完整路径为:D:\demo\a.txt)重命名为 b.txt 文件,可以执行如下代码:
import os
os.rename("D:\\demo\\a.txt","D:\\demo\\b.txt")
print("重命名完毕")
通过执行上面代码,即可成功将位于 D:\\demo 下的 a.txt 文件重命名为 b.txt。但是,如果 rename() 函数找不到目标文件或目录,将会抛出 FileNotFoundError 异常:

Traceback (most recent call last):
  File "C:\Users\mengma\Desktop\demo.py", line 2, in <module>
    os.rename("D:\\demo\\a.txt","D:\\demo\\b.txt")
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'D:\\demo\\a.txt' -> 'D:\\demo\\b.txt'


使用 rename()函数重命名目录和重命名文件基本相同,只需要将文件路径替换为目录路径即可。例如,将 D:\demo 目录重命名为 new 目录,可以执行如下代码:
import os
os.rename("D:\\demo","D:\\new")
print("重命名完毕")
同重命名文件名一样,当 rename() 找不到要重命名的目录时,也会抛出 FileNotFoundError 异常:

Traceback (most recent call last):
  File "C:\Users\mengma\Desktop\demo.py", line 2, in <module>
    os.rename("D:\\demo","D:\\new") FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'D:\\demo' -> 'D:\\new'

注意,在对目录进行重命名时,只能修改最后一级的目录名称,也就是说,只能修改目录名,而不能移动它的位置。


如果想避免出现 FileNotFoundError 异常,可以在删除文件或目录时,先判断目标文件或目录是否存在,即如果存在才执行删除操作,执行代码如下:
import os
if os.path.exists("D:\\demo\\a.txt"):
    os.rename("D:\\demo\\a.txt","D:\\demo\\b.txt")
    print("文件重命名完毕")
除此之外,还可以使用 try except 语句避免出现 FileNotFoundError 异常,执行代码如下:
import os
try:
    os.rename("D:\\demo","D:\\new")
    print("重命名完毕")
except(FileNotFoundError):
    print("目录不存在")

推荐文章
MySQL创建视图(CREATE VIEW)

MySQL 基本语法 CREATEVIEWAS :指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。 :指定创建视图的SELECT语句,可用于查询多个基础表或源视图。 用户

idea控制台中文乱码怎么解决?

关于IDEA中文乱码的解决方法,如下。1、打开idea安装目录,选择打开文件,末尾添加-Dfile.encoding=UTF-82、打开IntelliJIDEA>File>Setting>Editor

JS setAttribute()方法:设置元素的属性值

在JavaScript中,使用元素的setAttribute()方法可以设置元素的属性值。用法如下: setAttribute(name,value) 参数name和value分别表示属性名称和属性

版本管理介绍

项目的开发是长期的过程。这个过程里有每个项目的生命周期和各个功能的里程碑。一般会把这些周期和里程碑确定成一个个的版本,以便对整个项目实行历程的管理和阶段目标的控制。那怎样科学地管理项目的版本呢?接下来

C++ lognormal_distribution对数分布随机数函数用法详解

对数分布和表示随机变量的正态分布有关,这些值的对数分布是一个正态分布。对数分布是由期望和标准差定义的,但这些参数和变量无关,它们和变量的对数相关。具体来说,一个期望为μ标准差为σ的随机变量x的对数分布

什么是OA?

OA全称OfficeAutomation,即办公自动化,是将计算机、通信等现代化技术运用到传统办公方式,进而形成的一种新型办公方式。办公自动化利用现代化设备和信息化技术,代替办公人员传统的部分手动或重

tcp/ip全称是什么

tcp/ip全称是TransmissionControlProtocol/InternetProtocol(传输控制协议/网际协议),是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅

Java保存图书信息

在本章《Java字节流的使用》和《Java字符流的使用》中已经详细介绍了字节、字符输入/输出流的应用,利用输出流我们可以将一些数据保存到磁盘文件中,利用输入流可以读取磁盘文件中的内容。本节将综合使用文

C++ STL map insert()插入数据的4种方式

前面讲过,C++STLmap类模板中对[]运算符进行了重载,即根据使用场景的不同,借助[]运算符可以实现不同的操作。举个例子: #include #include//map #include/

常用的9个网络命令是什么?

既然我们天天跟电脑打交道,多学习并且记下这些重要的命令十分有必要的。下面给大家讲讲常用的九个重要命令及这些命令的作用,一起来学习吧。1、ping命令ping是个使用频率极高的实用程序,主要用于确定网络

EL表达式的内置对象及其作用域

EL表达式的主要功能是进行内容显示。为了显示方便,在表达式语言中,提供了许多内置对象,通过不同的内置对象的设置,表达式语言可以输出不同的内容,这些内置对象如表1所示。 表1EL表达式的内置对象

C++ STL基本组成(6大组件+13个头文件)

通常认为,STL是由容器、算法、迭代器、函数对象、适配器、内存分配器这6部分构成,其中后面4部分是为前2部分服务的,它们各自的含义如表1所示。 表1STL组成结构 STL的组成 含义

Linux dmesg命令:显示开机信息

通过学习《Linux启动管理》一章可以知道,在系统启动过程中,内核还会进行一次系统检测(第一次是BIOS进行加测),但是检测的过程不是没有显示在屏幕上,就是会快速的在屏幕上一闪而过那么,如果开机时来不

JS正则表达式语法大全(非常详细)

前面几节讲解了如何在JavaScript中使用正则表达式,以及如何执行匹配,本节就来讲一下正则表达式的具体语法。 正则表达式是一种通用的工具,在JavaScript、PHP、Java、Python、

一个网站应该如何部署关键词?

经过大量细致的关键词挖掘及扩展工作之后,我们应该能够得到一份至少包含几百甚至上千个相关关键词的列表,这些关键词需要有机、合理地分布到整个网站上。 金字塔形结构 搜索引擎在分析网页的时候,通常是在HT

C#面向对象概述

早期的程序实际上就是一连串对计算机下达的指令,例如求解第N大的质数,或联立计算若干个方程的解。 由于问题实际上都是数学问题,所以主要的矛盾在算法设计上,而变量通常都是简单的数据类型,例如整数和小数等

word文档中字体颜色怎么变成黑色?

word文档中字体颜色变成黑色的方法第1步,打开Word文档窗口,选中需要改变字体颜色的文本块。第2步,在“开始”功能区的“字体”分组中,单击“字体颜色”下拉三角按钮。打开字体颜色面板第3步,在“主题

什么是多核,并行和并发的区别

在计算机设计早期,为了响应更多计算性能的需要,单处理器系统发展成为多处理器系统。更现代的、类似的系统设计趋势是将多个计算核放到单个芯片。无论多个计算核是在多个CPU芯片上还是在单个CPU芯片上,我们称

Java输出杨辉三角形

本节利用过Java语言中的流程控制语句,如条件语句、循环语句和跳转语句等知识输出一个指定行数的杨辉三角形。 杨辉三角形由数字进行排列,可以把它看作是一个数字表,其基本特性是两侧数值均为1,其他位置的

C语言文件的打开和关闭,C语言文件操作

文件代表一系列的字节。函数fopen()将一个文件和一个流关联起来,并初始化一个类型为FILE的对象,该对象包含了控制该流的所有信息。这些信息包括指向缓冲区的指针;文件位置指示器,它指定了获取文件的位