利用python批量修改word文件名的方法示例

时间:2023-03-10 04:09:02
利用python批量修改word文件名的方法示例

利用python批量修改word文件名的方法示例

最近不小心把硬盘给格式化了,由于当时的文件没有备份,所以一下所有的文件都没有了,于是只能采取补救措施,用文件恢复软件恢复了一部分的数据出来,但是恢复完毕的文件的文件名全丢了,所有的文件只有代号,如下面的图:

利用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文档,然后再用上述的方法来修改。

注意:上述的方法对于大部分的word文档是可以的,但是有些文档由于格式等自身原因,无法进行修改,对于这些文档可以直接手动修改。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值。