利用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 相关文章推荐
使用Django的模版来配合字符串翻译工作
Jul 27 Python
python删除列表内容
Aug 04 Python
git进行版本控制心得详谈
Dec 10 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
用python实现刷点击率的示例代码
Feb 21 Python
基于Python中的yield表达式介绍
Nov 19 Python
Python unittest 自动识别并执行测试用例方式
Mar 09 Python
在django中使用post方法时,需要增加csrftoken的例子
Mar 13 Python
Keras 快速解决OOM超内存的问题
Jun 11 Python
Python爬虫代理池搭建的方法步骤
Sep 28 Python
python3实现名片管理系统(控制台版)
Nov 29 Python
python - timeit 时间模块
Apr 06 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
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
php微信支付之APP支付方法
2015/03/04 PHP
Laravel 5框架学习之子视图和表单复用
2015/04/09 PHP
php保存任意网络图片到服务器的方法
2015/04/14 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
Thinkphp连表查询及数据导出方法示例
2016/10/15 PHP
让Laravel API永远返回JSON格式响应的方法示例
2018/09/05 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
JavaScript中几个重要的属性(this、constructor、prototype)介绍
2013/05/19 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
盘点javascript 正则表达式中 中括号的【坑】
2016/03/16 Javascript
非常棒的jQuery图片轮播效果
2016/04/17 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
2016/10/19 Javascript
PHP捕捉异常中断的方法
2016/10/24 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
jQuery zTree插件使用简单教程
2019/08/16 jQuery
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
python 数据提取及拆分的实现代码
2019/08/26 Python
Python logging模块handlers用法详解
2020/08/14 Python
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
洲际酒店集团美国官网:IHG美国
2017/11/16 全球购物
社区工作者思想汇报
2014/01/13 职场文书
电视购物广告词
2014/03/19 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
运动会200米广播稿
2015/08/19 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
MySQL中一条update语句是如何执行的
2022/03/16 MySQL