利用python批量修改word文件名的方法示例


Posted in Python onOctober 17, 2017

前言

最近不小心把硬盘给格式化了,由于当时的文件没有备份,所以一下所有的文件都没有了,于是只能采取补救措施,用文件恢复软件恢复了一部分的数据出来,但是恢复完毕的文件的文件名全丢了,所有的文件只有代号,如下面的图:

利用python批量修改word文件名的方法示例

几万个文件这要是手动的改得要改到明年。所以便动手写了一个python的脚本程序来代替这种繁杂的操作。

实现分析

想让程序来理解我的word文档里到底是什么内容是不可能的了,但是好在我的word文档内容都有标题,大部分的标题正好就是这个文档的文件名,于是我便打算把文档的标题当作文件名,而文件名大部分都是内容的第一段,于是思路便有了。于是开始写程序开干。

实现方法

首先需要安装python-docx库,直接通过pip安装:  pip install python-docx

具体的程序如下:

# -*- coding: utf-8 -*-
"""
NameChange1.0
 
This is a program that automatically modifies
 the name of an word document.
 
 author:fanghao
"""
from docx import Document
import os
 
#这个是放所有待修改的word文件的目录
dir_1 = "C:\\Users\\visg\\Desktop\\4"
filenames = os.listdir(dir_1)
 
#自动修改
for a in range(len(filenames)):
  print(filenames[a])
  dir_docx = dir_1 +"\\"+ filenames[a]
  try:
    document = Document(dir_docx)
  except:
    print("error")
  else:
    new_name = document.paragraphs[0].text + '.docx'
    try:
      os.rename(dir_1 + os.sep + filenames[a],dir_1 + os.sep + new_name)
    except(FileNotFoundError,FileExistsError,OSError):
      print("FileNotFoundError")

具体的目录自己修改下就可以了,这里我直接跳过了哪些名字改后重复的文件。

但是有点坑的地方是恢复出来的文档有的是docx,有的是doc文档,docx文档可以通过以上的方法来改名,但是doc文档便出现了问题。于是便只能先把doc文档转成docx文档,然后再用上述的方法来修改。怎么把doc转成docx,这里有一篇博客,一个大牛写了个比较利好的插件可以很好的实现(http://blog.sina.com.cn/s/blog_5488e3a90100u8ux.html),亲测好用!

注意:上述的方法对于大部分的word文档是可以的,但是有些文档由于格式等自身原因,无法进行修改,对于这些文档可以直接手动修改。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python自定义函数的创建、调用和函数的参数详解
Mar 11 Python
在Django框架中设置语言偏好的教程
Jul 27 Python
Python 使用PIL中的resize进行缩放的实例讲解
Aug 03 Python
python opencv捕获摄像头并显示内容的实现
Jul 11 Python
关于PyTorch源码解读之torchvision.models
Aug 17 Python
Python3实现将一维数组按标准长度分隔为二维数组
Nov 29 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
Mar 06 Python
python实现ftp文件传输系统(案例分析)
Mar 20 Python
python缩进长度是否统一
Aug 02 Python
如何用python实现一个HTTP连接池
Jan 14 Python
python3实现Dijkstra算法最短路径的实现
May 12 Python
pandas 实现将NaN转换为None
May 14 Python
Django内容增加富文本功能的实例
Oct 17 #Python
Python通过future处理并发问题
Oct 17 #Python
python3设计模式之简单工厂模式
Oct 17 #Python
基于Python和Scikit-Learn的机器学习探索
Oct 16 #Python
python版简单工厂模式
Oct 16 #Python
Python实现扩展内置类型的方法分析
Oct 16 #Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
Oct 16 #Python
You might like
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
基于jquery的地址栏射击游戏代码
2011/03/10 Javascript
JQuery中$.each 和$(selector).each()的区别详解
2015/03/13 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
2017/07/31 Javascript
webpack下实现动态引入文件方法
2018/02/22 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
浅谈Vue服务端渲染框架Nuxt的那些事
2018/12/21 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
快速入手Python字符编码
2016/08/03 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
python实现C4.5决策树算法
2018/08/29 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
详解python如何引用包package
2020/06/07 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
戴森香港官方网站:Dyson香港
2021/02/11 全球购物
中学生个人自我评价
2014/02/06 职场文书
求职简历自我评价范例
2014/03/12 职场文书
小学语文教研活动总结
2014/07/01 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
弄虚作假心得体会
2014/09/10 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书
工伤劳动仲裁代理词
2015/05/25 职场文书
大国崛起英国观后感
2015/06/02 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
《搭石》教学反思
2016/02/18 职场文书
个人自我鉴定怎么写?
2019/07/01 职场文书