利用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代码编写的5个优化技巧
Nov 16 Python
1 行 Python 代码快速实现 FTP 服务器
Jan 25 Python
python之super的使用小结
Aug 13 Python
python绘制多个子图的实例
Jul 07 Python
python设置随机种子实例讲解
Sep 12 Python
Python银行系统实战源码
Oct 25 Python
pygame实现俄罗斯方块游戏(对战篇1)
Oct 29 Python
tensorflow实现二维平面模拟三维数据教程
Feb 11 Python
python数据库编程 Mysql实现通讯录
Mar 27 Python
Django实现列表页商品数据返回教程
Apr 03 Python
python中time tzset()函数实例用法
Feb 18 Python
Python 实现Mac 屏幕截图详解
Oct 05 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编程中八种常见的文件操作方式
2006/11/19 PHP
PHP通过串口实现发送短信
2015/07/08 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
jQuery实现遍历XML节点和属性的方法示例
2018/04/29 jQuery
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
[15:46]教你分分钟做大人——沙王
2015/03/11 DOTA
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
使用Python下载Bing图片(代码)
2013/11/07 Python
python中日期和时间格式化输出的方法小结
2015/03/19 Python
Python读取properties配置文件操作示例
2018/03/29 Python
Python工厂函数用法实例分析
2018/05/14 Python
深入浅析Python的类
2018/06/22 Python
python实现反转部分单向链表
2018/09/27 Python
详解Python给照片换底色(蓝底换红底)
2019/03/22 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
Python数组并集交集补集代码实例
2020/02/18 Python
python实现PCA降维的示例详解
2020/02/24 Python
python获取响应某个字段值的3种实现方法
2020/04/30 Python
python 使用三引号时容易犯的小错误
2020/10/21 Python
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
幼儿园安全检查制度
2014/01/30 职场文书
教师求职自荐信
2015/03/26 职场文书
分析设计模式之模板方法Java实现
2021/06/23 Java/Android
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS