python處理word文件:win32com用法詳解

目標:用python處理doc文件html

方法:引入win32com模塊python


**************************************************************************linux

1、安裝windows

**************************************************************************ui


首先要先下載安裝win32com模塊(起先在linux下裝不成功,後在windows下面成功了。。。)spa

下載地址:http://sourceforge.net/projects/pywin32/files/.net

python處理word文件:win32com用法詳解orm


python處理word文件:win32com用法詳解htm


python處理word文件:win32com用法詳解找到正確匹配的blog

 


python處理word文件:win32com用法詳解

 python處理word文件:win32com用法詳解python處理word文件:win32com用法詳解python處理word文件:win32com用法詳解


下載以後,安裝便可:

python處理word文件:win32com用法詳解


**************************************************************************

2、應用1 拷貝doc文件內容

**************************************************************************


如今,就能夠用起來了。

如下是一個實例,將D:\a.doc中的內容複製到新的doc中去,新文件命名爲D:\b.doc

mt.py

#-*- encoding: utf8 -*-

'''

Created on 2011-12-01

處理doc文件

@author

'''

from win32com import client    #將模塊加載進來

 python處理word文件:win32com用法詳解word = client.Dispatch('Word.Application')    

 

 python處理word文件:win32com用法詳解#word.Visible = 0    

 

# 打開一個已存在的文件

 python處理word文件:win32com用法詳解doc = word.Documents.Open( r'D:\a.doc')   

 

# newdoc爲新word文件

newdoc = word.Documents.Add()

 python處理word文件:win32com用法詳解docC = word.Documents.Count    

 

#打印doc(第一個word文件)內容,中文不能打,報錯

print doc.Content    

 python處理word文件:win32com用法詳解#range = newdoc.Range(0,0)

 

range = newdoc.Range()#尾部

 python處理word文件:win32com用法詳解#range = newdoc.Range(doc.Content.Strat,doc.Content.end)

 

#range.InsertBefore('daisy')#在範圍前寫入字符串

 python處理word文件:win32com用法詳解range.InsertAfter(doc.Content)   

 

newdoc.SaveAs(r'D:\b.docx')  #另存爲b.docx(office2010)

 

# 關閉

doc.Close()

newdoc.Close()

word.Quit()

部分參考於:http://hi.baidu.com/��ɽ��/blog/item/70e7f388a7ea97ba0f244494.html

 

 

#連接word應用進程

 

#可視化1(能夠看見該word進程),不可視0(後臺運行word進程).

 

#後面打開的文件前面加r,不加的話後面的\就變成了轉義字符。得是中文名

 

獲取打開word進程個數,此時爲2

 

 

取得Range物件,文件的最首端。

 

# 取得Range物件,範圍整份文件

 

#將doc的內容添加到newdoc的最後

 

 

 

 

 

 


python處理word文件:win32com用法詳解


**************************************************************************

2、應用2 實際應用

**************************************************************************


下面來實現最初的目的:將教育學文件夾下的02-09(教育學09.doc)年的試題合併到out.docx中去。

edutest.py

#-*- encoding: utf8 -*-

'''

Created on 2011-12-01

處理word文件

@author : xiaodi

'''

import os, string, shutil

from win32com import client

#本來叫作教師資格證,教育學

 

 python處理word文件:win32com用法詳解dirname = "D:\\Learning\\other\\Teacher\\Edu"

 

word = client.Dispatch('Word.Application')

newdoc = word.Documents.Add()    #*0*.doc

 python處理word文件:win32com用法詳解for filen in os.listdir(dirname):

 python處理word文件:win32com用法詳解    if '0' not in filen:

        continue

 python處理word文件:win32com用法詳解    fileinname = os.path.join(dirname,filen)

    doc = word.Documents.Open( fileinname)

   #fileoutname = os.path.join(dirname,'out2.docx')

    # print fileoutname

    # shutil.copy(fileinname,fileoutname)

    range = newdoc.Range()

    range.InsertAfter(fileinname + '\n')

    

 python處理word文件:win32com用法詳解range.InsertAfter(doc.Content)

    range.InsertAfter('\n')

    doc.Close()

 python處理word文件:win32com用法詳解newdoc.SaveAs(r"D:\Learning\other\Teacher\Edu\out.docx")

newdoc.Close()

word.Quit()

print 'ok'



python處理word文件:win32com用法詳解






**************************************************************************

3、總結

**************************************************************************

幾年前搞的東西了,如今直接從本來存的word文檔拷貝過來。(20131218)

看樣子仍是失敗的例子。。.

相關文章
相關標籤/搜索