文档章节

python处理word文件:win32com用法详解

彼得
 彼得
发布于 2014/07/21 19:29
字数 794
阅读 15989
收藏 6

目标:用python处理doc文件

方法:引入win32com模块


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

一、安装

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


首先要先下载安装win32com模块(起先在linux下装不成功,后在windows下面成功了。。。)

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

python处理word文件:win32com用法详解


python处理word文件:win32com用法详解


python处理word文件:win32com用法详解找到正确匹配的

 


python处理word文件:win32com用法详解

 python处理word文件:win32com用法详解python处理word文件:win32com用法详解python处理word文件:win32com用法详解


下载之后,安装即可:

python处理word文件:win32com用法详解


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

二、应用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 实际应用

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


下面来实现最初的目的:将教育学文件夹下的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用法详解






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

三、总结

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

几年前搞的东西了,现在直接从原本存的word文档拷贝过来。(20131218)

看样子还是失败的例子。。.


本文转载自:http://blog.sina.com.cn/s/blog_8af106960100vg4i.html

上一篇: Python下载文件
彼得

彼得

粉丝 39
博文 122
码字总数 38726
作品 0
深圳
程序员
私信 提问
加载中

评论(3)

性感雨点儿
性感雨点儿
请问博主有没有相关资料啊,我想读word中的内容,结果读出来不对,但是又找不到相关资料也,还请博主不吝赐教。祝好!
彼得
彼得 博主

引用来自“枫之秋”的评论

完全是转发。。
是转发的哦,标题有“转”,结尾有附原文链接啊。
ons
ons
完全是转发。。
Python文本数据互相转换(pandas and win32com)

(工作之后,就让自己的身心都去休息吧) 今天介绍一下文本数据的提取和转换,这里主要实例的转换为excel文件(.xlsx)转换world文件(.doc/docx),同时需要使用win32api,同pywin32库。 pand...

James·Joshua
2018/08/16
0
0
python模块:win32com用法详解

python模块:win32com用法详解 使用技巧 import win32com from win32com.client import Dispatch, constants w = win32com.client.Dispatch('Word.Application') # 或者使用下面的方法,使用启......

木雨山
2012/06/28
0
3
用python的win32com打开excel并没有自动加载外部的宏文件,大神们帮忙看看

大神们,小弟遇到一个问题 我在excel的加载项中添加了一个Excel加载,宏report.xlam,这样手动打开任何excel文件时这个宏都会自动加载,并自动执行里面的Workbook_Open函数,从而在打开的exc...

bobo0103
2015/10/13
170
0
python使用win32com的心得

python可以使用一个第三方库叫做win32com达到操作com的目的,我是安装了ActivePython的第三方库,从官网下载了安装包,该第三方库几乎封装了所有python下面的win32相关的操作,例如win32api,...

zxcholmes
2015/07/28
0
0
python .doc文件 转化成 .docx文件

python .doc文件 转化成 .docx文件有什么方法或者什么库(除win32com这个库)

python_x
2015/08/14
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

中奖名单 | “赠书活动”中奖名单公布

在上周的赠书活动中, 小伙伴们踊跃参与! 京小云也很认真地进行了统计, 非常感谢大家的参与和支持! 下面公布中奖的名单~ 请中奖的小伙伴于5个工作日内 在微信公众号后台留下你的联系地址 ...

京东云技术新知
24分钟前
1
0
云原生生态周报 Vol. 11 | K8s 1.16 早知道

业界要闻 Pivotal 发布了完全基于 Kubernetes 的 Pivotal Application Service(PAS)预览版 这意味着 Pivotal 公司一直以来在持续运作的老牌 PaaS 项目 Cloud Foundry (CF)终于得以正式拥...

阿里巴巴云原生
24分钟前
0
0
低版本xcode真机调试iOS 12.3.1

老款mac pro已经升级不了系统了,导致最新版的xcode10.2及以上也安装不了,最新版的ios12.3.1也联机调试不了,apple是要逼着大家升级硬件啊,软件即服务,就是这样来的,大部分计算机软件公司...

swingcoder
24分钟前
4
0
浅谈堆排序

一:定义 堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆排序是一种树形选择排序,在排序过程中可以把元素看成是一颗完全二叉树,每个节点都大(小)于它的两个子...

无名氏的程序员
26分钟前
2
0
Alibaba Cloud Linux 2 开源后又有什么新动作?

阿里妹导读:2019 年 4 月,Alibaba Cloud Linux 2 (Aliyun Linux 2) 正式开源。时至今日,已经走过三个月的里程。在这段时间内,这个刚诞生不久的为阿里云 ECS 环境定制优化的 Linux 操作系...

阿里云官方博客
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部