zoukankan      html  css  js  c++  java
  • 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文档是可以的,但是有些文档由于格式等自身原因,无法进行修改,对于这些文档可以直接手动修改。

  • 相关阅读:
    java 基础语法 2
    hdu4570Multi-bit Trie
    poj1244Slots of Fun
    二维凸包模板
    花神的数论题(数位dp)
    poj1113Wall(凸包)
    poj1066Treasure Hunt(线段相交)
    poj1039Pipe(直线交点、叉积)
    hdu4588Count The Carries
    hdu2475Box(splay树形转线性)
  • 原文地址:https://www.cnblogs.com/zutterhao/p/7678523.html
Copyright © 2011-2022 走看看