使用Python的内部方法open()读取文本文件
try:f=open('/file','r')
print(f.read())
finally:
iff:
f.close()
如果读取word文档推荐使用第三方插件,python-docx 可以在官网上下载
使用方式
#-*-coding:cp936-*-importdocx
document=docx.Document(文件路径)
docText='\n\n'.join([
paragraph.text.encode('utf-8')forparagraphindocument.paragraphs
])
printdocText
python3读取word文件到sqlite
大象关进冰箱需要两步走:
- 获取word文件内容
- 将获取的内容拆分为对应的业务字段并写入sqlite中
首先我这有个文档,里面包含了驾照考试科四试题。
然后新建sqlite表,以下为表结构:
CREATETABLE"myDocAnswer"("id"INTEGERPRIMARYKEYAUTOINCREMENTNOTNULL,
"title"TEXT,
"a"TEXT,
"b"TEXT,
"c"TEXT,
"d"TEXT,
"answer"TEXT
);
最后将数据导入sqlite中,以下为完整代码:
importdocximportsqlite3
'''
读取docx数据
'''
document=docx.Document("question.docx")
data=[]#定义data列表
item={}
#输出每一段的内容
forparamindocument.paragraphs:
#print(param.text)
ifparam.text:
i=param.text[0]
ifi.isdigit():
item['title']=param.text
ifi=='A':
item['a']=param.text[2:]
ifi=='B':
item['b']=param.text[2:]
ifi=='C':
item['c']=param.text[2:]
ifi=='D':
item['d']=param.text[2:]
ifi=='标':
item['answer']=param.text[-1:]
else:
data.append(item)
item={}
'''
写入sqlite
'''
conn=sqlite3.connect("mydocAnswer.db")
c=conn.cursor()
foritemsindata:
c.execute("INSERTINTO`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数据表数据:
python3读取word文件到sqlite
我也遇到过类似问题,直接就把word里的内容复制到一个TXT文件里, 然后再with open它和read文本内容来做分析
复制到文本没问题,问题是我想把内容导入到excel或者sqlite上。不知道咋解决
python如何读取word文件
>>>defPrintAllParagraphs(doc):count=doc.Paragraphs.Count
foriinrange(count-1,-1,-1):
pr=doc.Paragraphs[i].Range
printpr.Text
>>>app=my.Office.Word.GetInstance()
>>>doc=app.Documents[0]
>>>PrintAllParagraphs(doc)
1.什么是域
域应用基础
>>>
@staticmethoddefGetInstance():
u'''获取Word应用程序的Application对象'''
importwin32com.client
returnwin32com.client.Dispatch('Word.Application')
my.Office.Word.GetInstance的方法实现如上,是一个使用win32com操纵Word Com的接口的封装
所有Paragraph即段落对象,都是通过Paragraph.Range.Text来访问它的文字的
如何在 Linux 上使用 Python 读取 word 文件信息
必须说明:不同于Illustrator、InDesign、CorelDRAW、OpenOffice DRAW、Incscape等工具,Word是流动分页的,文件内容本身并不存储分页结果。具体分页时断在哪里、最后分出多少页,都需要现场渲染所有的图文内容之后才能确定。
(简而言之就是:Word文件中仅包含了一行一行的文本,与页面设置中指定的页面尺寸。Word每次打开文件时都会一行一行“摆放”文本数据,发现一页装不下了自动新开一页。当然真正的Word渲染引擎肯定有更复杂的行为。)
从.doc/.docx文件中直接读出页面数量,这本身就是个伪命题。所以千万别在“直接读取页面数量”这个方向上寻求方案——软件开发的技法不好可以改正,但路线错了必死无疑!
你需要调动一套能够真的把Word文件的内容渲染出来的工具(支持二次开发的)。只有把Word文件的所有内容渲染成为可以观看的图形,才能准确得知页面的总数。在Linux上很可能LibreOffice可以吧。而在Windows上就当然是用Word本身了。
注意Word的分页结论是没有保证的。缺少字体、字形不同、软件环境不同等各种原因,都会造成不同电脑上打开同一个Word文件的页数不一致。这一点对服务器也没有例外。得到了页数也只能参考使用,而不要100%信赖。
如何在 Linux 上使用 Python 读取 word 文件信息
必须说明:不同于Illustrator、InDesign、CorelDRAW、OpenOffice DRAW、Incscape等工具,Word是流动分页的,文件内容本身并不存储分页结果。具体分页时断在哪里、最后分出多少页,都需要现场渲染所有的图文内容之后才能确定。
(简而言之就是:Word文件中仅包含了一行一行的文本,与页面设置中指定的页面尺寸。Word每次打开文件时都会一行一行“摆放”文本数据,发现一页装不下了自动新开一页。当然真正的Word渲染引擎肯定有更复杂的行为。)
从.doc/.docx文件中直接读出页面数量,这本身就是个伪命题。所以千万别在“直接读取页面数量”这个方向上寻求方案——软件开发的技法不好可以改正,但路线错了必死无疑!
你需要调动一套能够真的把Word文件的内容渲染出来的工具(支持二次开发的)。只有把Word文件的所有内容渲染成为可以观看的图形,才能准确得知页面的总数。在Linux上很可能LibreOffice可以吧。而在Windows上就当然是用Word本身了。
注意Word的分页结论是没有保证的。缺少字体、字形不同、软件环境不同等各种原因,都会造成不同电脑上打开同一个Word文件的页数不一致。这一点对服务器也没有例外。得到了页数也只能参考使用,而不要100%信赖。
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并不是纯文本(不存在一行一行的概念),尽管你可能只输入了文本,但不能认为它就是文本
转载请注明出处51数据库 » python3读取word 如何用python读取word