1. 程式人生 > >python批量修改word文件名

python批量修改word文件名

mat graph 操作 erro 利好 chan 都沒有 list 無法

最近不小心把硬盤給格式化了,由於當時的文件沒有備份,所以一下所有的文件都沒有了,於是只能采取補救措施,用文件恢復軟件恢復了一部分的數據出來,但是恢復完畢的文件的文件名全丟了,所有的文件只有代號,如下面的圖:

技術分享

幾萬個文件這要是手動的改得要改到明年。所以便動手寫了一個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批量修改word文件名