python如何读取word文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python如何读取word文件相关的知识,希望对你有一定的参考价值。
网上看到很多用win32com库的但是他们仅仅讲如何操作word我现在需求是从一个doc或docx中把他文字全读到内存里能print出来即可。由于对win32com库不是很熟悉故希望得到大家的指点。注python版本2.7
>>> def PrintAllParagraphs(doc):count=doc.Paragraphs.Count
for i in range(count-1,-1,-1):
pr=doc.Paragraphs[i].Range
print pr.Text
>>> app=my.Office.Word.GetInstance()
>>> doc=app.Documents[0]
>>> PrintAllParagraphs(doc)
1.什么是域
域应用基础
>>> @staticmethod
def GetInstance():
u'''获取Word应用程序的Application对象'''
import win32com.client
return win32com.client.Dispatch('Word.Application')
my.Office.Word.GetInstance的方法实现如上,是一个使用win32com操纵Word Com的接口的封装
所有Paragraph即段落对象,都是通过Paragraph.Range.Text来访问它的文字的
我现在装的是:
xlrd==1.0.0
xlwt==1.1.2 参考技术B 你好!这不太清楚,建议你到51cto中查询下
如何在 Linux 上使用 Python 读取 word 文件信息
必须说明:不同于Illustrator、InDesign、CorelDRAW、OpenOffice DRAW、Incscape等工具,Word是流动分页的,文件内容本身并不存储分页结果。具体分页时断在哪里、最后分出多少页,都需要现场渲染所有的图文内容之后才能确定。
(简而言之就是:Word文件中仅包含了一行一行的文本,与页面设置中指定的页面尺寸。Word每次打开文件时都会一行一行“摆放”文本数据,发现一页装不下了自动新开一页。当然真正的Word渲染引擎肯定有更复杂的行为。)
从.doc/.docx文件中直接读出页面数量,这本身就是个伪命题。所以千万别在“直接读取页面数量”这个方向上寻求方案——软件开发的技法不好可以改正,但路线错了必死无疑!
你需要调动一套能够真的把Word文件的内容渲染出来的工具(支持二次开发的)。只有把Word文件的所有内容渲染成为可以观看的图形,才能准确得知页面的总数。在Linux上很可能LibreOffice可以吧。而在Windows上就当然是用Word本身了。
注意Word的分页结论是没有保证的。缺少字体、字形不同、软件环境不同等各种原因,都会造成不同电脑上打开同一个Word文件的页数不一致。这一点对服务器也没有例外。得到了页数也只能参考使用,而不要100%信赖。
参考技术A 请注意,所有的程序在它们第一行都是#!/usr/bin/env/python,也就是说,我们想要Python的解释器来执行这些脚本。因此,如果你想你的脚本具有执行性,请使用chmod +x your-script.py, 那么你就可以使用./your-script.py来执行它了(在本文中你将会看到这种方式)探索platform模块
platform模块在标准库中,它有很多运行我们获得众多系统信息的函数。让我们运行Python解释器来探索它们中的一些函数,那就从platform.uname()函数开始吧:
>>> import platform
>>> platform.uname()
('Linux', 'fedora.echorand', '3.7.4-204.fc18.x86_64', '#1 SMP Wed Jan 23 16:44:29 UTC 2013', 'x86_64')
如果你已知道linux上的uname命令,那么你就会认出来这个函数就是这个命令的一个接口。在Python 2上,它会返回一个包含系统类型(或者内核版本),主机名,版本,发布版本,机器的硬件以及处理器信息元组(tuple)。你可以使用下标访问个别属性,像这样:
>>> platform.uname()[0]
'Linux'
在Python 3上,这个函数返回的是一个命名元组:
>>> platform.uname()
uname_result(system='Linux', node='fedora.echorand',
release='3.7.4-204.fc18.x86_64', version='#1 SMP Wed Jan 23 16:44:29
UTC 2013', machine='x86_64', processor='x86_64')
因为返回结果是一个命名元组,这就可以简单地通过名字来指定特定的属性,而不是必须记住下标,像这样:
>>> platform.uname().system
'Linux'
platform模块还有一些上面属性的直接接口,像这样:
>>> platform.system()
'Linux'
>>> platform.release()
'3.7.4-204.fc18.x86_64' 参考技术B WORD格式不完全开放,所以基本没有独立的读取WORD文档的库,而因此各家软件提供的接口都有差别的,所以,你首先得确定你用的是哪款软件
以上是关于python如何读取word文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Linux 上使用 Python 读取 word 文件信息