利用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入门指引
Apr 01 Python
PyCharm设置每行最大长度限制的方法
Jan 16 Python
python 使用plt画图,去除图片四周的白边方法
Jul 09 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
Sep 11 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
Feb 25 Python
python模块如何查看
Jun 16 Python
浅谈Python中的继承
Jun 19 Python
Python单元测试及unittest框架用法实例解析
Jul 09 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
Nov 10 Python
Python源码解析之List
May 21 Python
opencv深入浅出了解机器学习和深度学习
Mar 17 Python
Python+SeaTable实现计算两个日期间的工作日天数
Jul 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
简单的cookie计数器实现源码
2013/06/07 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
2014/06/25 PHP
php生成复杂验证码(倾斜,正弦干扰线,黏贴,旋转)
2018/03/12 PHP
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
Javascript客户端将指定区域导出到Word、Excel的代码
2008/10/22 Javascript
Firefox outerHTML实现代码
2009/06/04 Javascript
Javascript 实用小技巧
2010/04/07 Javascript
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
用js实现in_array的方法
2013/11/05 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
jQuery自制提示框tooltip改进版
2016/08/01 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
使用xampp将angular项目运行在web服务器的教程
2019/09/16 Javascript
深入理解redux之compose的具体应用
2020/01/12 Javascript
javascript 数组精简技巧小结
2020/02/26 Javascript
基于vue hash模式微信分享#号的解决
2020/09/07 Javascript
[01:06:43]完美世界DOTA2联赛PWL S3 PXG vs GXR 第二场 12.19
2020/12/24 DOTA
python实现2048小游戏
2015/03/30 Python
Python单元测试实例详解
2018/05/25 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
Python中时间datetime的处理与转换用法总结
2019/02/18 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
高中美术教学反思
2014/01/19 职场文书
大学校庆策划书
2014/01/31 职场文书
能源工程专业应届生求职信
2014/03/01 职场文书
工商企业管理专业自荐信范文
2014/04/12 职场文书
和谐拯救危机观后感
2015/06/15 职场文书
外出考察学习心得体会
2016/01/18 职场文书
关于JavaScript回调函数的深入理解
2021/06/27 Javascript