利用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实现在无须过多援引的情况下创建字典的方法
Sep 25 Python
python万年历实现代码 含运行结果
May 20 Python
用Pygal绘制直方图代码示例
Dec 07 Python
python实现扫描日志关键字的示例
Apr 28 Python
Redis使用watch完成秒杀抢购功能的代码
May 07 Python
Python3解释器知识点总结
Feb 19 Python
python数据挖掘需要学的内容
Jun 23 Python
python+selenium 鼠标事件操作方法
Aug 24 Python
Python3 Tkinkter + SQLite实现登录和注册界面
Nov 19 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
Jun 11 Python
Python中OpenCV实现查找轮廓的实例
Jun 08 Python
Python OpenCV实现图像模板匹配详解
Apr 07 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 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
php提示undefined index的几种解决方法
2012/05/21 PHP
php自动加载autoload机制示例分享
2014/02/20 PHP
PHP 错误处理机制
2015/07/06 PHP
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
jquery插件开发方法(初学者)
2012/02/03 Javascript
JS、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
2014/04/11 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
jquery衣服颜色选取插件效果代码分享
2015/08/28 Javascript
javascript 将共享属性迁移到原型中去的实现方法
2016/08/31 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
2017/12/06 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
2018/09/16 Javascript
angularJS1 url中携带参数的获取方法
2018/10/09 Javascript
Element Dropdown下拉菜单的使用方法
2020/07/26 Javascript
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
开源Web应用框架Django图文教程
2017/03/09 Python
Python通过OpenCV的findContours获取轮廓并切割实例
2018/01/05 Python
基于Django用户认证系统详解
2018/02/21 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
python判断设备是否联网的方法
2018/06/29 Python
Python数据可视化之画图
2019/01/15 Python
python 函数的缺省参数使用注意事项分析
2019/09/17 Python
pyqt5 textEdit、lineEdit操作的示例代码
2020/08/12 Python
英国网上购买门:Direct Doors
2018/06/07 全球购物
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
英国领先的新鲜松露和最好的松露产品供应商:TruffleHunter
2019/08/26 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
int *p=NULL和*p= NULL有什么区别
2014/10/23 面试题
销售主管的自我评价分享
2014/01/03 职场文书
计算机专业职业规划
2014/02/28 职场文书
北京天坛导游词
2015/02/12 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
Mysql 设置boolean类型的操作
2021/06/04 MySQL
muduo TcpServer模块源码分析
2022/04/26 Redis