python 将一个目录下word转为txt第三版

原创 2015年11月21日 17:27:24

不多说了,增加了容错性,还避免了中间在用py2exe时关于win32com的问题


# -*- coding: cp936 -*-
'''
Created on 2015年11月21日

@author: lushangqi
'''
#!D:\\My Python\\Trans_to_txt.py
#注意Windows下路径表示 
from win32com import client as wc
import os
import fnmatch


all_FileNum = 0
debug = 0


def Translate(path):
    '''
    将一个目录下所有doc和docx文件转成txt
    该目录下创建一个新目录newdir
    新目录下fileNames.txt创建一个文本存入所有的word文件名
    本版本具有一定的容错性,即允许对同一文件夹多次操作而不发生冲突
    '''
    global debug, all_FileNum
    if debug:
        print path
    #该目录下所有文件的名字
    files = os.listdir(path) 
    #该目下创建一个新目录newdir,用来放转化后的txt文本
    New_dir = os.path.abspath(os.path.join(path, 'newdir'))
    if not os.path.exists(New_dir):
        os.mkdir(New_dir)
    if debug:
        print New_dir
    #创建一个文本存入所有的word文件名
    fileNameSet= os.path.abspath(os.path.join(New_dir, 'fileNames.txt'))
    o=open(fileNameSet,"w") 
    try:
        for filename in files:
            if debug:
                print filename
            #如果不是word文件:继续
            if not fnmatch.fnmatch(filename, '*.doc') and not fnmatch.fnmatch(filename, '*.docx'):
                continue;
            #如果是word临时文件:继续
            if fnmatch.fnmatch(filename, '~$*'):
                continue;
            if debug:
                print filename
            docpath = os.path.abspath(os.path.join(path,filename))
            
            #得到一个新的文件名,把原文件名的后缀改成txt
            new_txt_name = ''
            if fnmatch.fnmatch(filename, '*.doc'):    
                new_txt_name = filename[:-4]+'.txt'
            else:
                new_txt_name = filename[:-5]+'.txt'
            if debug:
                print new_txt_name
            word_to_txt = os.path.join(os.path.join(path, 'newdir'),new_txt_name)
            print word_to_txt
            wordapp = wc.Dispatch('Word.Application')
            doc = wordapp.Documents.Open(docpath)
            #为了让python可以在后续操作中r方式读取txt和不产生乱码,参数为4
            doc.SaveAs(word_to_txt,4)
            doc.Close()
            o.write(word_to_txt+'\n')
            all_FileNum += 1
    finally:
        wordapp.Quit()

if __name__ == '__main__':
    print '''
        将一个目录下所有doc和docx文件转成txt
        该目下创建一个新目录newdir
        新目录下fileNames.txt创建一个文本存入所有的word文件名
        本程序具有一定的容错性
    '''
    print('Enter your Director\'s path:')
    print("路径用\或\\表示均可")
    mypath = raw_input()
    print ('生成的文件有:')
    Translate(mypath)
    print 'The Total Files Numbers = ', all_FileNum
    raw_input()
    




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

python doc word文件转txt、html

下载pywin32 win32com 重点语法: doc.SaveAs(os.path.join(parent,'html',title+'.html') ,8) os.mkdir(o...
  • YMD8005
  • YMD8005
  • 2016年10月18日 19:42
  • 378

python如何处理解析word文档doc docx , python-docx,python-docx2txt,zipfile

关于python如何处理word文档doc docx,可以关注 python-docx 和 python-docx2txt 两个项目,python-docx复杂一些,适合创建文档,python-doc...

python 将pdf转换成txt

由于上篇中的一个模块要求是将pdf中的文本内容给读取出来,因为大部分的毕设文档都是pdf格式的,而python自带的file I/O是没法实现从pdf格式的文件中读取内容的,因此需要导入第三方的pac...

word文档转换为txt-python

__author__ = 'fremcode@gmail.com' # -*- coding: utf-8 -*- import os import sys import fnmatch import...

用python处理MS Word

使用python工具读写MS Word文件(docx与doc文件),主要利用了python-docx包。本文给出一些常用的操作,并完成一个样例,帮助大家快速入手。...

Python 将一个目录下的所有word文档转为txt

需要下载安装win32com,并且注意要和你的python版本和32bit or 64bit一致 #!D:\\My Python\\Trans_to_txt.py #注意Windows下路径表示 ...

Python 将HTML转换为TXT

CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-9-5 @author: guaguastd @name:...

语义分析的一些方法(二)

转腾讯广电通博文:语义分析的一些方法

语义分析的一些方法(二)

本文转自这里2 文本语义分析前面讲到一些文本基本处理方法。一个文本串,对其进行分词和重要性打分后(当然还有更多的文本处理任务),就可以开始更高层的语义分析任务。2.1 Topic Model首先介绍主...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python 将一个目录下word转为txt第三版
举报原因:
原因补充:

(最多只允许输入30个字)