python 自动化办公之批量修改文件名实操
作者:wx62c625022e0c1??????? 发布时间:2021-09-21 06:54:45
标签:python,自动化,批量,修改,文件名
1. 程序背景
之前做文件批量移动的时候不小心多加了一个pdf后缀,但问题不大,几行代码就可以搞定~
2. 程序要求
将以下目录中文件夹中的有问题的文件全部重命名为单个.pdf结尾的文件
3. 解决思路
需要用到 os、re 和 shutil 三个库,均为系统自带,无需安装
使用 os 库得到年份的文件夹名,以及年份文件夹中的文件名
使用正则表达式 re 将“.pdf.pdf”全部替换为“.pdf”
拼接出文件路径后使用 shutil 库 的rename函数进行重命名操作
4. 完整代码
#导入需要的库
import os
import re
import shutil
path = r'E:\课题\wrongfile1729\wrongfile' #传入文件地址
year_file_li = os.listdir(path) # 得到年份文件夹列表
for year in year_file_li: # 便利所有年份
year_path = path + '\\' + year # 拼接出年份文件夹的地址
file_li = os.listdir(year_path) # 得到年份文件夹中的文件名称列表
for file in file_li: # 遍历每一个年份文件夹中的文件
wash_name = re.sub('.pdf.pdf', '.pdf', file, re.DOTALL) # 文件名修改
old_path = year_path + '\\' + file # 拼接出旧文件地址
new_path = year_path + '\\' + wash_name # 拼接出新文件地址
shutil.move(old_path, new_path) # 进行文件重命名操作
5. 运行结果
修改完成~
6. 总结
代码的核心有三点,分别是:
os 库得到文件名列表
re 库得到新文件名
shutil 库对文件进行重命名
来源:https://blog.51cto.com/coderusher/5487085
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 1、什么是Spring Cloud ConfigSpring Cloud Config为微服务架构提供了配置管理的功能,通过Spring C
- 一、前言既然在Pathlib库中提到了glob()函数,那么我们就专门用一篇内容讲解文件名的匹配。其实我们有专门的一个文件名匹配库就叫:gl
- 本文实例讲述了js中火星坐标、百度坐标、WGS84坐标转换实现方法。分享给大家供大家参考,具体如下://定义一些常量var x_PI = 3
- 使用runserver可以使我们的django项目很便捷的在本地运行起来,但这只能在局域网内访问,如果在生产环境部署django,就要多考虑
- 前言编程是一件很快乐的事,实现一个目的,我们可以有很多方法路径,在这篇文章我们介绍一些JavaScript的奇技淫巧,仅供大家参考,各路大神
- 阅读上一篇教程:WEB2.0网页制作标准教程(9)第一个CSS布局实例如果我们想在3列布局的最后加一行页脚,放版权之类的信息。就遇到必须对齐
- 废话不多说。直接上代码:sock_post.php:<?phpfunction sock_post($url, $data='
- 显示下级的方法elementui的节点过滤默认是不显示下级的代码在 :filter-node-method="filterNode
- 修改vue-treeSelect的高度.vue-treeselect{ height: 28px; }
- 前言如果你和我一样偶尔看看股票,看看自己关注的股票是涨了还是跌了,或者想快速获取到想看的头条新闻,我们不必把过多的注意力放在去寻找上面,我们
- 自己写了一下,适用而已,不太好,应该还能优化。先自己记录一下。不说废话了,直接贴代码最好:/* * 获得时间差,时间格式为 年-月
- 1. 数组数组是 Golang 中的一种基本数据类型,用于存储固定数量的同类型元素。在 Golang 中,数组的长度是固定的,并且必须在定义
- json.dumps将一个Python数据结构转换为JSONimport jsondata = { 'na
- 1. 什么是索引索引是在数据库表的字段上添加的,是为了提高查询效率存在的一种机制。一张表的一个字段可以添加一个索引,当然,多个字段联合起来也
- 块级元素块级元素生成一个元素框,(默认地)它会填充其父级元素的内容,旁边不能有其他元素。换句话说,他在元素框之前和之后生成了“分隔”符。我们
- Python的from import *和from import *,它们的功能都是将包引入使用,但是它们是怎么执行的以及为什么使用这种语法
- 本文介绍Python中的线程同步对象,主要涉及 thread 和 threading 模块。threading 模块提供的线程同步原语包括:
- 安装环境:CentOS7 64位 MINI版官网源码编译安装文档:http://dev.mysql.com/doc/refman/5.7/e
- 如下所示:import numpy as npimport matplotlib.pyplot as plt# 生成测试数据x = np.l
- 前提:安装libxml2 libxstl官方网站:http://xmlsoft.org/XSLT/index.html安装包下载:http: