python中的符号下划线_Python-docx 替换下划线字符为填空序号

python-docx读取docx文档内容非常方便,按下面代码就能顺利读取段落文本:

doc = docx.Document(root_url) # == 打开文件,root_url为docx文档的物理路径

forparagraph indoc.paragraphs: # == 按段读取

str_content = paragraph.text # == 文本内容

上面代码是把整段文本读取出来,如何读取指定样式的文本并替换为需要的内容呢?比如下面的需求:

填空题

He is going to leave for Beijing.

The film starts at 7:00 on Monday evening.

It is difficult for old people to speak English.

The girls often listen to music at home.Jim sits in front ofme, and I sit behind him.

这是一个题库导入的填空题的模板,要求把下划线的内容替换为填空的序号,如:(1),(2),(3)等,带下划线的字符为标准答案,存在题库中。

通常思路是把读取段落内容采用替换的字符的方法来解决,但是如果一段中出现多个相同字符或字符是一个单词中的一部份就有问题了。因此,必须采用精确的定位方法来实现,下面就是实现方法:

forparagraph indoc.paragraphs: # == 按段读取

forstyle inparagraph.runs: # == 读取格式

ifstyle.underline:

underline_text.append(style.text) # == 读取格式文本

str_content+=" ( "+str(i_style+1)+" ) "

i_style += 1

else:

str_content += style.text

输出结果:

解决问题!

谢谢关注!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值