Python将word信息存入txt文本

首先必须安装pywin32这个模块,根据你python的版本,直接sourceforge下载:http://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/pywin32-219.win-amd64-py2.7.exe/download

安装完通过import试验下,不一定安装成功就能用,但是刚碰到个奇怪的问题,安装2.7.8版本的python,这模块在自动寻找是找不到python的;而安装2.7.7版本就没问题,可以安装成功,可能是我醉了的缘故

这段code,运行没错误,但是神奇的是,偏偏就是不生成ctest.txt,目前原因没找到,连hello world也不打印

ps:发晕,os.walk()穿进去的是一个path,文件目录,而不是文件名,将该目录下所有doc=>txt

#!/usr/bin/env python

import fnmatch
import os
import sys
import win32com.client

#input_file = ‘ctest.doc’
input_path = ‘./’
wordapp = win32com.client.gencache.EnsureDispatch(‘Word.Application’)
try:
    for path, dirs, files in os.walk(input_path):
    #for path, dirs, files in os.walk(input_file):
        #print ‘hello world’
        for filename in files:
            if not fnmatch.fnmatch(filename, ‘*.doc’):
                continue
            doc = os.path.abspath(os.path.join(path, filename))
            print ‘processing %s’ %doc
            wordapp.Documents.Open(doc)
            docastxt = doc[:-3] + ‘txt’
            wordapp.ActiveDocument.SaveAs(docastxt,
                FileFormat = win32com.client.constants.wdFormatText)
            wordapp.ActiveDocument.Close()
finally:
    wordapp.Quit()

从该目录下所有的.doc文件中抽取文本,存为对应命名的.txt文本文件,通过os.walk()遍历所有子目录,通过fnmatch.fnmatch函数,检查文件名以确认它是否符合*.doc通配符,确认之后,就用此文件名和os.path得到一个绝对路径,再用word打开,存为文本文件,然后关闭

发表评论