Python新手求助:如何按标点拆分docx文本并实现换行
解决方法
首先,textract.process()返回的是字节(bytes)类型数据,得先转成字符串才能处理。接下来可以用正则表达式匹配所有以句号、问号、感叹号结尾的句子,既能拆分内容,又能保留标点在句尾。
完整代码示例:
import textract import re filename = r'C:\Users\User\Documents\testdocument.docx' # 读取docx内容并转成字符串 newtext = textract.process(filename).decode('utf-8').strip() # 匹配所有以.、?、!结尾的句子,[^.?!]+表示匹配任意非标点的字符,直到遇到标点 sentences = re.findall(r'[^.?!]+[.?!]', newtext) # 遍历打印每个句子,每行一个 for sentence in sentences: # 去掉句子前后多余的空格 print(sentence.strip())
补充说明
- 如果docx文件编码不是utf-8,解码时可以换成
decode('gbk')试试,根据文件实际编码调整。 - 正则表达式
r'[^.?!]+[.?!]'能覆盖大部分常规句子,若遇到省略号(比如...)这类特殊情况,可调整为r'[^.?!]+[.?!]+'来匹配连续标点。
内容的提问来源于stack exchange,提问作者m373117
相关产品推荐
相关产品推荐

