Python学习历程

python学习历程

Task

对word中的文本进行操作,切分为句子。

1.python读取word文件

使用python-docx中的docx.Document.paragraphs获取文本内容。

2.以“。”或换行符将文本分割成句子

from docx import Document

document = Document('D:\\国家+省市政策\国家+省市政策\\(一)国家宏观战略规划及行动方案政策文件汇编\\1.国务院关于推进国家级经济技术开发区创新提升打造改革开放新高地的意见.docx')  #打开文件demo.docx

#使用python-docx中的docx.Document.paragraphs获取文本段落
longparagraph,shortparagraph  = [],[]
i,j = 0,0
for paragraph in document.paragraphs:
    #长段落继续划分句子
    if (len(paragraph.text) > 5):
        longparagraph.insert(i,paragraph.text)  #打印各段落内容文本
        i=i+1
    #短段落直接当做句子
    else:
        shortparagraph.insert(i,paragraph.text)
        j=j+1
#对长段落使用“。”分割成句子
sentence = []
#filter_data函数的功能是:对于一个由string组成的list:[str1,str2,...],过滤掉那些空字符串'',特殊字符串'\n',并返回过滤后的新list
#filter函数:filter(function判断函数,iterable可迭代对象)  返回一个迭代器对象
def not_break(sen):
    return (sen != '\n' and sen != '\u3000' and  sen != '' and not sen.isspace())
def filter_data(senlist):
    new_senlist = list(filter(not_break, [data.strip() for data in senlist]))
    return new_senlist
for sen in longparagraph:
    sentence = sentence + filter_data(sen.split("。"))  #返回一个新的list
#测试输出
for paragraph in sentence:
    print (paragraph)

#将结果保存为txt文件。
output = open('a.txt','w',encoding='utf-8')
for row in sentence:
    output.write(row)
    output.write('\n')
output.close




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值