
word中文件的格式如图,类似一个标准的参考文献格式,而我的需求是按照作者,论文名,期刊名,时间,期卷号存到一个excel中。
1首先,word的python读取每次读的是块。
2通过对格式的分析,确定了利用,来分割字符串,然后再用来分割上次分割的第一个字符串,这对于期刊论文很适用,对于会议论文的可用性就弱很多。
3数据的传递使用的是list而不是字典,如果有机会的话,可能字典更好用,只是时间有限。
python自带的split
并且支持反向切割,strrsplit()语法和正向一致
2re库带的split,自认为的亮点是可以支持吧不同的符号作为切割位点,例如,
rematch与research的区别
rematch只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而research匹配整个字符串,直到找到一个匹配
Python 的 re 模块提供了resub用于替换字符串中的匹配项。
语法:
from docx import Document
# 打开 word文件
f = open('随便写写行docx', 'rb')
# 读取 word文件内容
document = Document(f)
# 打印 word 文档段落内容2进制列表
# print(documentparagraphs)
# 打开一个txt文档用来写入数据
with open('result2txt', 'w') as fw:
# 遍历 word 段落内容列表
for context in documentparagraphs:
# 以换行符转换成列表
text = contexttextsplit('\n')
# 按行写入,同时换行
fwwrite(f"{text[0]}\n")
# 打印看看效果
print(text[0])
fclose()
import docx
doc=docxDocument()
整数 0 表示标题是 Title 样式,这用于文档的顶部。整数 1 到 45是不同的标题层次,是主要的标题, 45是最低层的子标题。
docadd_heading('标题0',0)
docadd_heading('标题1',1)
docadd_heading('标题2',2)
docadd_heading('标题3',3)
docadd_heading('标题4',4)
docadd_heading('标题5',5)
docsave('example3docx')
1# 添加内容
paragraph = doc_add_paragraph()
run_ = paragraphadd_run("Python 博客")
2# 获取字体对象
font_ = run_font
3# 设置下划线
font_underline = True
4# 设置加粗
font_bold = True
5# 设置字体颜色
font_colorrgb = RGBColor(0xFF,0x00,0x00)
6# 设置字体大小
font_size = Pt(20)
7# 获取段落格式
paragraph_format = paragraphparagraph_format
8# 设置首行缩进
paragraph_formatfirst_line_indent = Inches(02)
9# 设置段前距,单位为英镑
paragraph_formatspace_after = Pt(10)
10# 设置段后距,单位为英镑
paragraph_formatspace_before = Pt(5)
11# 添加表格
table_ = doc_add_table(rows=2, cols=2, style="Medium Grid 1 Accent 1")
12# 填写第一行第一列内容
table_cell(0,0)text ="
13# 填写第一行第二列内容
table_cell(0,1)text =""
14# 填写第二行第一列内容
table_cell(1,0)text ="描述"
15# 填写第二行第二列内容
table_cell(1,1)text =""
16# 添加、width 属性设置大小
doc_add_picture(r"/usr/load/download/testpng", width=Inches(425))
17# 保存文档
doc_save('Python--Word 内容格式docx')
使用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学习笔记(28) - Python读取word文本 - 程序员大阳的博客

1 简介 Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx模块会把word文档,文档中的段落、文本、字体等都看做对象,
2 相关概念 如果需要读取
请注意,所有的程序在它们第一行都是#!/usr/bin/env/python,也就是说,我们想要Python的解释器来执行这些脚本。因此,如果你想你的脚本具有执行性,请使用chmod +x your-scriptpy, 那么你就可以使用/your-scriptpy来执行它了(在本文中你将会看到这种方式)
探索platform模块
platform模块在标准库中,它有很多运行我们获得众多系统信息的函数。让我们运行Python解释器来探索它们中的一些函数,那就从platformuname()函数开始吧:
>>> import platform
>>> platformuname()
('Linux', 'fedoraechorand', '374-204fc18x86_64', '#1 SMP Wed Jan 23 16:44:29 UTC 2013', 'x86_64')
如果你已知道linux上的uname命令,那么你就会认出来这个函数就是这个命令的一个接口。在Python 2上,它会返回一个包含系统类型(或者内核版本),主机名,版本,发布版本,机器的硬件以及处理器信息元组(tuple)。你可以使用下标访问个别属性,像这样:
>>> platformuname()[0]
'Linux'
在Python 3上,这个函数返回的是一个命名元组:
>>> platformuname()
uname_result(system='Linux', node='fedoraechorand',
release='374-204fc18x86_64', version='#1 SMP Wed Jan 23 16:44:29
UTC 2013', machine='x86_64', processor='x86_64')
因为返回结果是一个命名元组,这就可以简单地通过名字来指定特定的属性,而不是必须记住下标,像这样:
>>> platformuname()system
'Linux'
platform模块还有一些上面属性的直接接口,像这样:
>>> platformsystem()
'Linux'
>>> platformrelease()
'374-204fc18x86_64'
word中doc这个格式的文件是微软特有格式,微软没有向外公开任何的api接口文档,
只能通过微软提供的OLE组件来提其COM接口,只要你的机器上安装了Offices完整的办公软件,在安装目录下面有个MSWORDOLB组件,导入这个即可。
1、相关 *** 作Excel有MSPPTOLB,EXCELexe等。
以上就是关于python从word中读取规则数据存到excel中全部的内容,包括:python从word中读取规则数据存到excel中、python如何读取word文件中的文本内容并写入到新的txt文件、python设置word文档格式内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)