Python3 读取Word文件方式

来源:脚本之家  责任编辑:小易  

必须说明:不同于Illustrator、InDesign、CorelDRAW、OpenOffice

我的环境,Windows10,Python3.6.3

请注意,所有的程序在它们第一行都是#!/usr/bin/env/python,也就是说,我们想要Py

查询了很多有关资料,发现都是Python2版本操作Word文件的,所以就写了这篇短小的文章。

使用Python的内部方法open()读取文本文件try: f=open('/fil

一、安装 docx

root@localhost:~/xly/02# cat t.py import os

pip install docx

首先下载安装win32comfrom win32com import client as

完了之后,导入:import docx

穿衣显瘦脱衣有肌肉的,咋能不提彭于晏呢,长着一张大男孩的脸,身材却那么man,全身散发着男星荷尔蒙啊啊第二位就是张大佛爷陈伟霆了,穿衣帅爆表,脱衣性感的让迷妹流口水《无心法师》里的韩东君,棱角分明的脸加上壮硕的肌肉,这样的男神不要太man哦《太子妃》里的盛一伦也是穿衣想让人睡,脱衣想犯罪的类型,要不要这么性感?啊,好了就先写这几位吧,你们喜欢谁的身材呢?

发现报错:ModuleNotFoundError: No module named ‘exceptions'

摔话筒的明星很多,比如薛之谦、宋小宝、金星、田震等等都摔过话筒。那么我来评价一下他们为什么摔话筒,最后总结!杨角风发作,针对社会现场发表最独特的看法,喜欢就关注吧,不胜感激!今日浏览新闻又见摔话筒事件,勾起了小编杨角风的强烈兴趣,这次又有什么黑幕爆出呢?8月26日晚,《明日之子》最强厂牌比赛第三场时,薛之谦在荷兹与赵天宇对决投票中将票投给了荷兹,但却在下一轮点评时推翻自己的选择,称自己受到导演组指示不要让荷兹输的太难看,所以投了荷兹。他现场愤而摔麦中断直播,直到杨幂、华晨宇等人去后台沟通了以后,才再次出现在舞台。这真有点尴尬了,作为一名星推官,理应按照自己的意愿办事,盲目听从节目组安排,最后违

说没有 exceptions 这个模块,由于Python3已经取消了这个模块,而 PendingDeprecationWarning 是内置

每个阶段有每个阶段的累!但带孩子累的时候你有没有想过为什么累?1.太操劳勤快,具有无私奉献和牺牲的精神孩子小一点儿的时候半夜爬起来喂奶,孩子大一点买菜做饭,送孩子上学,下课后给孩子辅导作业哪个阶段都不轻松!2.太容易担心,保护孩子的责任心太强对孩子的关爱特别深,生怕孩子受一点点伤害,宝宝睡觉妈妈不放心,怕着凉有没有?怕出汗吹空调感冒有没有对孩子的担心,是妈妈脑子里永远无法摆脱的绷得最紧的一根弦,身心俱疲。3.对自己太苛刻,太容易愧疚因为工作忙不能陪孩子,心里感到愧疚;偶尔对孩子发脾气,可能还会愧疚!

可以直接使用的,所以我们直接进入文件(这个要看你报错显示的路径):

1、震惊世界的未解之谜 出自圣经中的一个传说:上帝看到人类战争,确定要惩罚人类。上帝选中诺亚一家作为人类的种子保存下来,诺亚便打造了一艘船,这就是“诺亚方舟”,诺亚把每种生物都带了一对,就成了今天的生物界。上帝连续下雨40天,世界变成一片汪洋,只留下方舟里人和动物安然无恙。2、震惊世界的未解之谜  着名的巨石阵遗址位于英国伦敦西南100多公里的索尔兹伯里平原上,是欧洲最着名、最神秘的史前遗迹。建造于4300年前,石阵的主体是由一根根巨大的石柱排列成几个完整的同心圆。石阵的外围是直径约90米的环形土岗和沟。巨石小的有5吨,大的重达50吨。3、震惊世界的未解之谜  鹦鹉学舌是尽人皆知的,而且人们普

D:\ProgramFiles\Anaconda3\lib\site-packages\docx.py

from exceptions import PendingDeprecationWarning 注释掉即可

示例代码:

import docx def get_docx(file_name): d = docx.opendocx(file_name) doc = docx.getdocumenttext(d) return doc doc = get_docx('tt.docx') print(doc) # 输出行数:1075 for d in doc[:5]: print(d) # 打印前5行 '''输出: 一、补益之剂 1.四君子汤 四君子汤中和义,参术茯苓甘草比 益以夏陈名六君,祛痰补气阳虚饵 除却半夏名异功,或加香砂胃寒使 '''

以上这篇Python3 读取Word文件方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

python如何读取word文件

>>> 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')

  1. my.Office.Word.GetInstance的方法实现如上,是一个使用win32com操纵Word Com的接口的封装

  2. 所有Paragraph即段落对象,都是通过Paragraph.Range.Text来访问它的文字的

python3读取word文件到sqlite

大象关进冰箱需要两步走:

  1.  获取word文件内容
  2.  将获取的内容拆分为对应的业务字段并写入sqlite中

首先我这有个文档,里面包含了驾照考试科四试题。

然后新建sqlite表,以下为表结构:

CREATE TABLE "myDocAnswer" (

"id"  INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,

"title"  TEXT,

"a"  TEXT,

"b"  TEXT,

"c"  TEXT,

"d"  TEXT,

"answer"  TEXT

);

最后将数据导入sqlite中,以下为完整代码:import docx

import sqlite3

'''

读取docx 数据

'''

document = docx.Document("question.docx")

data=[]  # 定义data列表

item={}

#输出每一段的内容

for param in document.paragraphs:

    # print(param.text)

    if param.text:

        i=param.text[0]

        if i.isdigit():

            item['title']=param.text

        if i=='A':

            item['a'] = param.text[2:]

        if i=='B':

            item['b'] =param.text[2:]

        if i=='C':

            item['c'] = param.text[2:]

        if i=='D':

            item['d'] =param.text[2:]

        if i=='标':

            item['answer'] = param.text[-1:]

    else:

        data.append(item)

        item={}

'''

写入 sqlite

'''

conn = sqlite3.connect("mydocAnswer.db")

c = conn.cursor()

for items in data:

    c.execute("INSERT INTO `myDocAnswer` (`title`,`a`,`b`,`c`,`d`,`answer`) VALUES ('" + items['title'] + "', '" + items['a'] + "', '" + items['b'] + "', '" + items['c'] + "', '" + items['d'] + "', '" + items['answer'] + "')");

    conn.commit()

conn.close()

print('finish')

运行后查看sqlite数据表数据:

python读取word文档内容

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并不是纯文本(不存在一行一行的概念),尽管你可能只输入了文本,但不能认为它就是文本本回答被提问者采纳

python如何获取word文件中某个关键字之后的表格

最好是全部都读取到程序中,在程序中进行判断。

本文实例讲述了Python实现批量读取word中表格信息的方法。分享给大家供大家参考。具体如下:

单位收集了很多word格式的调查表,领导需要收集表单里的信息,我就把所有调查表放一个文件里,写了个python小程序把所需的信息打印出来

#coding:utf-8

import os

import win32com

from win32com.client import Dispatch, constants

from docx import Document

def parse_doc(f):

"""读取doc,返回姓名和行业

"""

doc = w.Documents.Open( FileName = f )

t = doc.Tables[0] # 根据文件中的图表选择信息

name = t.Rows[0].Cells[1].Range.Text

situation = t.Rows[0].Cells[5].Range.Text

people = t.Rows[1].Cells[1].Range.Text

title = t.Rows[1].Cells[3].Range.Text

print name, situation, people,title

doc.Close()

def parse_docx(f):

"""读取docx,返回姓名和行业

"""

d = Document(f)

t = d.tables[0]

name = t.cell(0,1).text

situation = t.cell(0,8).text

people = t.cell(1,2).text

title = t.cell(1,8).text

print name, situation, people,title

if __name__ == "__main__":

w = win32com.client.Dispatch('Word.Application')

# 遍历文件

PATH = "H:\work\\aaa" # windows文件路径

doc_files = os.listdir(PATH)

for doc in doc_files:

if os.path.splitext(doc)[1] == '.docx':

try:

parse_docx(PATH+'\\'+doc)

except Exception as e:

print e

elif os.path.splitext(doc)[1] == '.doc':

try:

parse_doc(PATH+'\\'+doc)

except Exception as e:

print e

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

python读取已经打开的3个word和excle文件的路径

使用os.path.abspath()函数来获取文件绝对路径

文件目录结构如下:

解析

假设app.py中想读取config.ini文件的内容,首先app.py需要知道config.ini的文件路径,从目录结构上可以看出,config.ini与app.py的父目录同级,也就是获取到app.py父目录(bin文件夹的路径)的父目录(config文件夹路径)的绝对路径再拼上config.ini文件名就能获取到config.ini文件:

首先,在app.py中测试一下:

import os

def load_file():

# 获取当前文件路径

current_path = os.path.abspath(__file__)

# 获取当前文件的父目录

father_path = os.path.abspath(os.path.dirname(current_path) + os.path.sep + ".")

# config.ini文件路径,获取当前目录的父目录的父目录与congig.ini拼接

config_file_path=os.path.join(os.path.abspath(os.path.dirname(current_path) + os.path.sep + ".."),'config.ini')

print('当前目录:' + current_path)

print('当前父目录:' + father_path)

print('config.ini路径:' + config_file_path)

load_file()

从结果中可以看到一切都正常,没有什么问题,假如现在需要从main.py中执行app.py的load_file()方法呢?

来测试一下:

main.py(处于同级目录):

from bin.app import load_file

if __name__=='__main__':

load_file()

可以看到,获取的路径是完全没有问题的

拓展内容

python os.path 常用模块介绍

追问看清问题,我问的是读取已经打开word的文件的位置,不是python文件的位置

  • 本文相关:
  • python读取word文本操作详解
  • python读写docx文件的方法
  • 使用python批量读取word文档并整理关键信息到excel表格的实例
  • python使用python-docx读写word文档
  • python实现生成word、docx文件的方法分析
  • 详解python中with语句的用法
  • python使用tkinter实现简单计算器
  • python简单实现区域生长方式
  • python 两个数据库postgresql对比
  • python装饰器使用实例:验证参数合法性
  • 用python编写简单的微博爬虫
  • python中列表元素连接方法join用法实例
  • python字符串切片操作知识详解
  • 批处理与python代码混合编程的方法
  • scrapy框架基本命令与settings.py设置
  • python如何读取word文件
  • python3读取word文件到sqlite
  • python读取word文档内容
  • python如何获取word文件中某个关键字之后的表格
  • python读取已经打开的3个word和excle文件的路径
  • 如何在 Linux 上使用 Python 读取 word 文件信息
  • python如何读取word当中的控件的状态和信息
  • 如何用python读取word
  • python3 读取文件夹名及内含文件名
  • python能打开word文档吗
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved