利用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项目发布为exe可执行程序过程分享
Oct 23 Python
python中requests小技巧
May 10 Python
Python实现获取命令行输出结果的方法
Jun 10 Python
纯python实现机器学习之kNN算法示例
Mar 01 Python
python将文本分每两行一组并保存到文件
Mar 19 Python
python实现一组典型数据格式转换
Dec 15 Python
这可能是最好玩的python GUI入门实例(推荐)
Jul 19 Python
PYTHON如何读取和写入EXCEL里面的数据
Oct 28 Python
python实现人机猜拳小游戏
Feb 03 Python
Python实现括号匹配方法详解
Feb 10 Python
Pycharm plot独立窗口显示的操作
Dec 11 Python
pandas针对excel处理的实现
Jan 15 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
PHP 向右侧拉菜单实现代码,测试使用中
2009/11/03 PHP
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
PHP中使用register_shutdown_function函数截获fatal error示例
2015/04/21 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
2016/09/11 PHP
我的javascript 函数链之演变
2011/04/07 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
javascript实现单击和双击并存的方法
2014/12/13 Javascript
javascript定时器完整实例
2015/02/10 Javascript
JavaScript生成随机字符串的方法
2015/03/19 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
NodeJS处理Express中异步错误
2017/03/26 NodeJs
微信小程序开发中的疑问解答汇总
2017/07/03 Javascript
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
详解vue 数组和对象渲染问题
2018/09/21 Javascript
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
vue实现随机验证码功能(完整代码)
2019/12/10 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
[02:28]DOTA2亚洲邀请赛 LGD战队巡礼
2015/02/03 DOTA
[01:20]DOTA2 2017国际邀请赛冠军之路无止竞
2017/06/19 DOTA
python实现电子产品商店
2019/02/26 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
python 实现识别图片上的数字
2019/07/30 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
详解H5本地储存Web Storage
2017/07/03 HTML / CSS
美国美妆网站:B-Glowing
2016/10/12 全球购物
洲际酒店集团英国官网:IHG英国
2019/07/10 全球购物
高考标语大全
2014/06/05 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
毕业论文致谢信
2015/05/14 职场文书
公司人力资源管理制度
2015/08/05 职场文书
2019大学生实习报告
2019/06/21 职场文书