
word中文件的格式如图,类似一个标准的参考文献格式,而我的需求是按照作者,论文名,期刊名,时间,期卷号存到一个excel中。
1首先,word的python读取每次读的是块。
2通过对格式的分析,确定了利用,来分割字符串,然后再用来分割上次分割的第一个字符串,这对于期刊论文很适用,对于会议论文的可用性就弱很多。
3数据的传递使用的是list而不是字典,如果有机会的话,可能字典更好用,只是时间有限。
python自带的split
并且支持反向切割,strrsplit()语法和正向一致
2re库带的split,自认为的亮点是可以支持吧不同的符号作为切割位点,例如,
rematch与research的区别
rematch只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而research匹配整个字符串,直到找到一个匹配
Python 的 re 模块提供了resub用于替换字符串中的匹配项。
语法:
方法很多,比如之前提到的pypdf。然而用起来其实稍显麻烦,很多 *** 作不够方便。
所以我一般用pdf2htmlex(github上有,一个国人项目,非python)先把pdf转html,接下来再用bs4来解析处理。好处是处理html的工具非常非常丰富,且pdf2htmlex对原页面的效果保持得特别好,特别是对于那些个用word和latex导出的pdf里,大量数据图表里的标签可以很方便地把值抓出来……
使用ospathabspath()函数来获取文件绝对路径
文件目录结构如下:
解析
假设apppy中想读取configini文件的内容,首先apppy需要知道configini的文件路径,从目录结构上可以看出,configini与apppy的父目录同级,也就是获取到apppy父目录(bin文件夹的路径)的父目录(config文件夹路径)的绝对路径再拼上configini文件名就能获取到configini文件:
首先,在apppy中测试一下:
import os
def load_file():
# 获取当前文件路径
current_path = ospathabspath(__file__)
# 获取当前文件的父目录
father_path = ospathabspath(ospathdirname(current_path) + ospathsep + "")
# configini文件路径,获取当前目录的父目录的父目录与congigini拼接
config_file_path=ospathjoin(ospathabspath(ospathdirname(current_path) + ospathsep + ""),'configini')
print('当前目录:' + current_path)
print('当前父目录:' + father_path)
print('configini路径:' + config_file_path)
load_file()
从结果中可以看到一切都正常,没有什么问题,假如现在需要从mainpy中执行apppy的load_file()方法呢?
来测试一下:
mainpy(处于同级目录):
from binapp import load_file
if __name__=='__main__':
load_file()
可以看到,获取的路径是完全没有问题的
拓展内容
python ospath 常用模块介绍
Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx模块会把word文档,文档中的段落、文本、字体等都看做对象,对对象进行处理就是对word文档的内容处理。
二,相关概念
如果需要读取word文档中的文字(一般来说,程序也只需要认识word文档中的文字信息),需要先了解python-docx模块的几个概念。
1,Document对象,表示一个word文档。
2,Paragraph对象,表示word文档中的一个段落
3,Paragraph对象的text属性,表示段落中的文本内容。
三,模块的安装和导入
需要注意,python-docx模块安装需要在cmd命令行中输入pip install python-docx,如下图表示安装成功(最后那句英文Successfully installed,成功地安装完成,十分考验英文水平。)
注意在导入模块时,用的是import docx。
也真是奇了怪了,怎么安装和导入模块时,很多都不用一个名字,看来是很有必要出一个python版本的模块管理程序python-maven了,本段纯属PS。
四,读取word文本
在了解了上面的信息之后,就很简单了,下面先创建一个D:\temp\worddocx文件,并在其中输入如下内容。
然后写一段程序,代码及输出结果如下:
#读取docx中的文本代码示例
import docx
#获取文档对象
file=docxDocument("D:\\temp\\worddocx")
print("段落数:"+str(len(fileparagraphs)))#段落数为13,每个回车隔离一段
#输出每一段的内容
for para in fileparagraphs:
print(paratext)
#输出段落编号及段落内容
for i in range(len(fileparagraphs)):
print("第"+str(i)+"段的内容是:"+fileparagraphs[i]text)
运行结果:
================ RESTART: F:/360data/重要数据/桌面/学习笔记/readWordpy ================
段落数:13
啊
我看见一座山
雄伟的大山
真高啊
啊
这座山是!
真的很高!
第0段的内容是:啊
第1段的内容是:
第2段的内容是:我看见一座山
第3段的内容是:
第4段的内容是:雄伟的大山
第5段的内容是:
第6段的内容是:真高啊
第7段的内容是:
第8段的内容是:啊
第9段的内容是:
第10段的内容是:这座山是!
第11段的内容是:
第12段的内容是:真的很高!
>>>
总结
以上就是本文关于Python读取word文本 *** 作详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
以上就是关于python从word中读取规则数据存到excel中全部的内容,包括:python从word中读取规则数据存到excel中、如何利用python抓取网页中的内容并存到word中、python读取已经打开的3个word和excle文件的路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)