利用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 try异常处理机制
Jun 01 Python
pandas实现选取特定索引的行
Apr 20 Python
深度辨析Python的eval()与exec()的方法
Mar 26 Python
Python hexstring-list-str之间的转换方法
Jun 12 Python
python用win32gui遍历窗口并设置窗口位置的方法
Jul 26 Python
pytorch中的embedding词向量的使用方法
Aug 18 Python
Python发送邮件的实例代码讲解
Oct 16 Python
pytorch torchvision.ImageFolder的用法介绍
Feb 20 Python
Django操作session 的方法
Mar 09 Python
详解python中的lambda与sorted函数
Sep 04 Python
Pycharm 跳转回之前所在页面的操作
Feb 05 Python
Python pandas求方差和标准差的方法实例
Aug 04 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/02/22 PHP
php下连接mssql2005的代码
2011/01/17 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
JavaScript 动态创建VML的方法
2009/10/14 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
WebPack配置vue多页面的技巧
2018/05/15 Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
2018/08/13 Javascript
Vue实现用户自定义字段显示数据的方法
2018/08/28 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
javascript设计模式 ? 建造者模式原理与应用实例分析
2020/04/10 Javascript
解决Vue watch里调用方法的坑
2020/11/07 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
python 合并文件的具体实例
2013/08/08 Python
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
python在windows命令行下输出彩色文字的方法
2015/03/19 Python
python开发游戏的前期准备
2019/05/05 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
python编写一个会算账的脚本的示例代码
2020/06/02 Python
西班牙在线光学:Visual-Click
2020/06/22 全球购物
五一服装活动方案
2014/01/11 职场文书
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
诚信承诺书模板
2014/05/26 职场文书
2014年财政所工作总结
2014/11/22 职场文书
先进工作者推荐材料
2014/12/23 职场文书
综合管理员岗位职责
2015/02/11 职场文书
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang
PHP实现两种排课方式
2021/06/26 PHP
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏
Java界面编程实现界面跳转
2022/06/16 Java/Android
微软Win11 全新照片应用面向 Dev预览版推出 新版本上手体验图集
2022/09/23 数码科技