精华内容
下载资源
问答
  • 1,利用python读取纯文字的word文档,读取段落和段落里的文字。先读取段落,代码如下:1 '''2 #利用python读取word文档,先读取段落3 '''4 #导入所需库5 from docx importDocument67 #打开word文档8 document = ...

    1,利用python读取纯文字的word文档,读取段落和段落里的文字。

    先读取段落,代码如下:

    1 '''

    2 #利用python读取word文档,先读取段落3 '''

    4 #导入所需库

    5 from docx importDocument6

    7 #打开word文档

    8 document = Document("D:/路径/长恨歌.docx")9

    10 #获取所有段落

    11 all_paragraphs =document.paragraphs12 #打印看看all_paragraphs是什么东西

    13 print(type(all_paragraphs)) #,打印后发现是列表

    14 #是列表就开始循环读取

    15 for paragraph inall_paragraphs:16 #打印每一个段落的文字

    17 print(paragraph.text)

    效果:

    2040899-20201113123511564-860494286.png

    再读取段落里的内容,代码如下:

    1 '''

    2 #利用python读取word文档3 '''

    4 #导入所需库

    5 from docx importDocument6

    7 #打开word文档

    8 document = Document("D:/路径/长恨歌.docx")9

    10 #获取所有段落

    11 all_paragraphs =document.paragraphs12 #打印看看all_paragraphs是什么东西

    13 print(type(all_paragraphs)) #,打印后发现是列表

    14 #是列表就开始循环读取

    15 for paragraph inall_paragraphs:16 #打印每一个段落的文字

    17 #print(paragraph.text)

    18 #循环读取每个段落里的run内容

    19 for run inparagraph.runs:20 print(run.text) #打印run内容

    效果如下:

    2040899-20201113123611041-956682909.png

    其实都准确的获取了文字内容,但是paragraph是保留了word文档里的换行符,而run是没有保留的。

    2,利用python读取纯表格文档,那要读取的文字都是存储在单元格里,需要读取单元格里的内容:

    1 '''

    2 #利用python读取word文档,表格文档3 '''

    4 #导入所需库

    5 from docx importDocument6

    7 #打开文件

    8 document = Document("D:/路径/长恨歌-表格.docx")9 #获取文档所有表格

    10 all_tables =document.tables11

    12 #打印all_tables类型

    13 print(type(all_tables)) #得到,即列表

    14 #开始循环读取表格列表

    15 for table inall_tables:16 #循环读取表格的每一行

    17 for row intable.rows:18 #print(row)

    19 #循环读取表格的每一个单元格

    20 for cell inrow.cells:21 #打印单元格里的内容

    22 print(cell.text) #打印

    3,利用python读取word文档,文档是表格加文字组合而成的。这个就设计word文档格式问题了。将要处理的word文档后缀名改为zip,发现也可以打开,里面有几个文件如图:

    2040899-20201113130319681-812327572.png

    点开word目录,发现有个document.xml,这就是我们要处理的文件。

    2040899-20201113130349545-1985365291.png

    代码开始:

    1 '''

    2 #利用python读取word文档,表格文档3 '''

    4 #导入所需库

    5 import zipfile #解压文件库

    6 #先将要处理的word文档用zipfile进行压缩

    7 word = zipfile.ZipFile('D:/路径/长恨歌-文字+表格.docx')8

    9 #找到要处理的xml文件并以utf-8的格式读取

    10 xml = word.read('word/document.xml').decode('utf-8')11 #打印看看

    12 #print(type(xml)) #字符串

    13 #print(xml) #打印整个字符串

    14 #接下来分割字符串并存储到列表中

    15 xml_list = xml.split('') #以字符串进行分割字符串

    16 #打印看是否符合预期

    17 #print(type(xml_list)) #是列表

    18 #print(xml_list) #列表内容

    19

    20 #开始切片,找标签

    21 text_list = [] #新建空list用以存储切出来的数据

    22 #开始循环读取列表xml_list

    23 for i inxml_list:24 #条件查找

    25 if i.find('') + 1: #切片查找是如果没找到是会返回-1,我们+1让他返回0,再运行else分支

    26 text_list.append(i[:i.find('')]) #如果不是返回0就把找到的依次追加到text_list末尾

    27 else:28 pass

    29 #print(text_list)

    30 #再将得到的列表拆分为字符串

    31 text = ''.join(text_list) #以空字符串为间隔,将列表拆分为字符串

    32 print(text)

    第三个表格加文字的取出文字有点绕,多处理几遍就行了。

    展开全文
  • 展开全部import fnmatch, os, sys, win32com.clientreadpath=r'D:\123'wordapp = win32com.client.gencache.EnsureDispatch("Word.Application")try:for path, dirs, files in os.walk(readpath):for filename in ...

    展开全部

    import fnmatch, os, sys, win32com.client

    readpath=r'D:\123'

    wordapp = win32com.client.gencache.EnsureDispatch("Word.Application")

    try:

    for path, dirs, files in os.walk(readpath):

    for filename in files:

    if not fnmatch.fnmatch(filename, '*.docx'):continue

    doc = os.path.abspath(os.path.join(path,filename))

    print 'processing %s...' % doc

    wordapp.Documents.Open(doc)

    docastext = doc[:-4] + 'txt'

    wordapp.ActiveDocument.SaveAs(docastext,FileFormat=win32com.client.constants.wdFormatText)

    wordapp.ActiveDocument.Close()

    finally:

    wordapp.Quit()

    print 'end'

    f=open(r'd:\123\test.txt','r')

    for line in f.readlines():

    print line.decode('gbk')

    f.close()

    追问

    能否直接读取word文档内容吗?

    我在其他地方也看到了先将word保存为txt再读取,为何要这样操作那?

    追答

    因为word并不是纯文本(不存在一行一行的概念),尽管你可能只输入了文本,但不能认为它就是文本

    2Q==

    已赞过

    已踩过<

    你对这个回答的评价是?

    评论

    收起

    展开全文
  • 周末需要做一个统计word文档字数的问题,刚开始以为很简单,因为之前做过excel表格相关的任务,所以认为利用扩展模块应该比较简单。通过搜索,确实搜到了一个python操作word的模块,python-docx通过命令安装:pip ...

    周末需要做一个统计word文档字数的问题,刚开始以为很简单,因为之前做过excel表格相关的任务,所以认为利用扩展模块应该比较简单。

    通过搜索,确实搜到了一个python操作word的模块,python-docx

    通过命令安装:pip install python-docx

    使用代码示例:

    #读取docx中的文本代码示例

    import docx

    #获取文档对象

    file=docx.Document("D:\\temp\\word.docx")

    print("段落数:"+str(len(file.paragraphs)))#段落数为13,每个回车隔离一段

    #输出每一段的内容

    for para in file.paragraphs:

    print(para.text)

    #输出段落编号及段落内容

    for i in range(len(file.paragraphs)):

    print("第"+str(i)+"段的内容是:"+file.paragraphs[i].text)

    拿过来自己试了一下,却报了以下的错误:

    1101923-20171016090942365-1865310586.png

    拿异常上百度搜了一下,大致的意思是python-docx这个模块貌似只支持docx文件,不支持doc。

    好吧,尝试另一种方法,使用antiword(这里使用的linux环境)

    先下载安装,地址:http://www.winfield.demon.nl/

    使用tar解压之后,分别用make 和 make install命令进行安装

    切换到安装的目录后,使用“./antiword” + doc文件名即可读取文件内容。

    1101923-20171016091603865-742861720.png

    展开全文
  • 主要介绍了python读取word文档的方法,实例分析了Python基于win32com操作word文档的相关技巧,需要的朋友可以参考下
  • 本文实例讲述了python读取word文档的方法。分享给大家供大家参考。具体如下:首先下载安装win32comfrom win32com import client as wcword = wc.Dispatch('Word.Application')doc = word.Documents.Open('c:/test')...

    本文实例讲述了python读取word文档的方法。分享给大家供大家参考。具体如下:

    首先下载安装win32com

    from win32com import client as wc

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

    doc = word.Documents.Open('c:/test')

    doc.SaveAs('c:/test.text', 2)

    doc.Close()

    word.Quit()

    这种方式产生的text文档,不能用python用普通的r方式读取,为了让python可以用r方式读取,应当写成

    doc.SaveAs('c:/test', 4)

    注意:系统执行完成后,会自动产生文件后缀txt(虽然没有指明后缀)。

    在xp系统下面,应当,

    open(r'c:\text','r')

    wdFormatDocument = 0

    wdFormatDocument97 = 0

    wdFormatDocumentDefault = 16

    wdFormatDOSText = 4

    wdFormatDOSTextLineBreaks = 5

    wdFormatEncodedText = 7

    wdFormatFilteredHTML = 10

    wdFormatFlatXML = 19

    wdFormatFlatXMLMacroEnabled = 20

    wdFormatFlatXMLTemplate = 21

    wdFormatFlatXMLTemplateMacroEnabled = 22

    wdFormatHTML = 8

    wdFormatPDF = 17

    wdFormatRTF = 6

    wdFormatTemplate = 1

    wdFormatTemplate97 = 1

    wdFormatText = 2

    wdFormatTextLineBreaks = 3

    wdFormatUnicodeText = 7

    wdFormatWebArchive = 9

    wdFormatXML = 11

    wdFormatXMLDocument = 12

    wdFormatXMLDocumentMacroEnabled = 13

    wdFormatXMLTemplate = 14

    wdFormatXMLTemplateMacroEnabled = 15

    wdFormatXPS = 18

    照着字面意思应该能对应到相应的文件格式,如果你是office 2003可能支持不了这么多格式。word文件转html有两种格式可选wdFormatHTML、wdFormatFilteredHTML(对应数字 8、10),区别是如果是wdFormatHTML格式的话,word文件里面的公式等ole对象将会存储成wmf格式,而选用 wdFormatFilteredHTML的话公式图片将存储为gif格式,而且目测可以看出用wdFormatFilteredHTML生成的HTML 明显比wdFormatHTML要干净许多。

    当然你也可以用任意一种语言通过com来调用office API,比如PHP.

    from win32com import client as wc

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

    doc = word.Documents.Open(r'c:/test1.doc')

    doc.SaveAs('c:/test1.text', 4)

    doc.Close()

    import re

    strings=open(r'c:\test1.text','r').read()

    result=re.findall('\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)|\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)',strings)

    chan=re.sub('\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)|\(\s*[A-D]\s*\)|\(\xa1*[A-D]\xa1*\)','()',strings)

    question=open(r'c:\question','a+')

    question.write(chan)

    question.close()

    answer=open(r'c:\answeronly','a+')

    for i,a in enumerate(result):

    m=re.search('[A-D]',a)

    answer.write(str(i+1)+' '+m.group()+'\n')

    answer.close()

    chan=re.sub(r'\xa3\xa8\s*[A-D]\s*\xa3\xa9','()',strings)

    #不要(),容易引起歧义。

    希望本文所述对大家的Python程序设计有所帮助。

    时间: 2015-05-07

    展开全文
  • 本文实例讲述了python读取word文档的方法。分享给大家供大家参考。具体如下:首先下载安装win32comfrom win32com import client as wcword = wc.Dispatch('Word.Application')doc = word.Documents.Open('c:/test')...
  • 首先需要安装相应的支持库:直接在命令行执行pip install python-docx示例代码如下:import docxfrom docx import Document #导入库path = "E:\\python_data\\1234.docx" #文件路径document = Document(path) #读入...
  • python读取word文档

    2017-10-16 09:16:00
    周末需要做一个统计word文档字数的问题,刚开始以为很简单,因为之前做过excel表格相关的任务,所以认为利用扩展模块应该比较简单。 通过搜索,确实搜到了一个python操作word的模块,python-docx 通过命令安装:...
  • importdocxfn= r'D:\长恨歌.docx'doc=docx.Document(fn)#按段落读取全部数据for paragraph indoc.paragraphs:print(paragraph.text)#按表格读取全部数据for table indoc.tables:for row intable.rows:for cell inrow...
  • word.Quit()这种方式产生的text文档,不能用python用普通的r方式读取,为了让python可以用r方式读取,应当写成doc.SaveAs('c:/test', 4)注意:系统执行完成后,会自动产生文件后缀txt(虽然没有指明后缀)。...
  • 在之前的文章[1] [2]中,我用python-docx这个包读取外部数据,驱动了word文档的更新,相当于是实现了Excel数据往word文档的数据流动。实现的方式比起之前依靠vba用Excel驱动word更新这个文章中说的要更可靠一些。...
  • 如果你是在Windows下, 直接使用win32com就可以进行读取word.doc文档和写入文档了。但是在Linux下还真是麻烦,一种方法是用OpenOffice的一个库来进行操作,那么意味这你要安装慢得要死的OpenOffice., 详细见下面的...
  • 今天小编就为大家分享一篇python读取word文档,插入mysql数据库的示例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 利用python读取word文档

    2020-12-22 15:50:01
    #利用python读取word文档 ''' #导入所需库 from docx import Document #打开word文档 document = Document(r'C:\Users\HP\Desktop\lading.docx') #获取所有段落 all_paragraphs = document.paragraphs print(type...
  • 安装python的docx支持python -m pip install python-docx# -*- coding: utf-8 -*-import docxfrom docx import Documentpath = \"./file2.docx\"document = Document(path)def readlist():table_count = 0row_count ...
  • 有人已经做了如何修改一些格式的博客:用python-docx修改已存在的Word文档的表格的字体格式。我这里给出替换内容给的例子,简单来说,就是使用一个函数.clear()清除原来内容,然后add_run增加内容:document ...
  • 两个简单的word文档, 各有一个表格:读取文档中的表格到列表(为演示只对单列表格操作):import docxdef 取表格(文件名):文件 = docx.Document(文件名)首个表 = 文件.tables[0]值 = []for 行 in 首个表.rows:for 格 in...
  • 两个简单的word文档, 各有一个表格:读取文档中的表格到列表(为演示只对单列表格操作):import docxdef 取表格(文件名):文件 = docx.Document(文件名)首个表 = 文件.tables[0]值 = []for 行 in 首个表.rows:for 格 in...
  • 如何在 Linux 上使用 Python 读取 word 文件信息(如页数)?R.T.doc 是二进制文件Python 如何进行读取呢?.docx 可用 python-docx 读取,但如何读到 页数 信息呢?注:在 linux server 上,而不是 windows相关...
  • 读取Word文档内容 doc.paragraphs 得到的是一个列表,包含了每个段落的实例 from docx import Document doc = Document('这是一个文档.docx') print(doc.paragraphs) paragraphs.text 得到该段落的文字内容 from....
  • Python解析word文档1 、安装并导依赖包2、word的doc格式转docx格式3、实例1解析word文档段落4、实例2解析word表格内容 1 、安装并导依赖包 安装依赖 python -m pip install pypiwin32 pip install python-docx ...
  • Python学习笔记(28)-Python读取word文本

    万次阅读 多人点赞 2017-07-17 11:36:17
    一,简介Python可以利用python-docx模块处理word文档,...二,相关概念如果需要读取word文档中的文字(一般来说,程序也只需要认识word文档中的文字信息),需要先了解python-docx模块的几个概念。1,Document对象,
  • python读取Word文档内容

    2020-08-30 21:05:54
    本方法存在两个问题 1.Profit出现的次数没统计进去 2.如果同一个句子中出现了两次profit,只统计出1次。 请大神指教 ##打开网易财报 ##计算关键词profit出现的次数 ...from docx import Document ...
  • 目标最近实验室里成立了一个计算机兴趣小组倡议大家多把自己解决问题的经验记录并分享就像在...我用python”所以决定用python从docx文档中提取文件头的信息然后把信息更新到一个xls电子表格中,像下面这样(直接po...
  • python读取word文档并作简单的文档筛选 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们...
  • 本文研究的主要问题时Python读取word文本操作,分享了相关概念和实现代码,具体如下。一,docx模块Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx模块会把word文档,文档中...
  • Python读取word文档(python-docx包)

    万次阅读 2017-08-15 09:23:44
    最近想统计word文档中的一些信息,人工统计的话。。。三天三夜吧 python 不愧是万能语言,发现有一个包叫做 docx,非常好用,具体查看官方文档:https://python-docx.readthedocs.io/en/latest/index.html (v...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,879
精华内容 16,751
关键字:

python读取word文档

python 订阅