python-docx的安装和使用
作者:互联网
python-docx的安装和使用
1. 安装python-docx
- python install python-docx
- 返回如下界面表示安装成功
2. 基本功能使用
- 导包:
from docx import Document
- tmp文件可以用excel打开,打开后选择ASC码或者utf-8
# 创建文档对象
document = Document(r'C:\Users\WM\Desktop\syntophone\python\python-docx/判断题.docx')
# 读取文档中所有的段落列表
ps = document.paragraphs
# 每个段落有两个属性:style和text
ps_detail = [(x.text, x.style.name) for x in ps]
with open('out.tmp', 'w+', encoding='utf-8') as fout:
fout.write('')
# 读取段落并写入一个文件
- 典型文件内容处理
1)文件处理中常用到python内置re包,因为re搜索支持正则表达式
2)re.search(查找字符串,被查找内容) # 返回结果为True/False
- re.sub(被替换字符串,替换字符串,内容) # 返回替换后结果
4)下方代码为从技能鉴定题库中提取出选择题题干
5)对于tmp文件,使用excel打开后,'\n'为换行,'\t'为同一行的下一列
6)因此,在下方程序中,通过判断数字+'.'确认改行内容为题干,添加'\n',表示进入下一个题,
7)下一个段落里面如果没有数字+'.',说明是本题的后续题干和选项,字符串拼接。对拼接后的字符串做替换,括号内内容清空,防止大括号内内容被识别为'\t'导致进入下一列
8)[]内添加ABCD,表示只要包含以上内容,后面跟顿号,就替换为'\t'
# 选择题题干处理
with open('out.tmp', 'a+', encoding='utf-8') as fout:
char1 = ''
for p in ps_detail:
if re.search('^\d+\. *', p[0]):
fout.write(char1.strip()+'\n')
char1 = p[0]
char1 = re.sub('^\d+\. *', '\n', char1)
char1 = re.sub('[ABCD]、', '\t', char1)
char1 = re.sub('\(.*?\)', '()', char1)
else:
char1 += p[0]
char1 = re.sub('[ABCD]、', '\t', char1)
char1 = re.sub('\(.*?\)', '()', char1)
标签:docx,sub,re,python,char1,fout,安装 来源: https://www.cnblogs.com/mixiubaba/p/13448465.html