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