首先必须安装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打开,存为文本文件,然后关闭