如何在 Python 中从 docx 文件中提取"if then else"关键字之间的部分文本



我需要从docx文件中提取文本的特定部分(如果bla bla the bla bla bla bla(。

我正在与python-docx合作,但我有一些问题。

我能够从IF开头打印行,但我无法提取其余的关注。

示例:在DOCX文件中有:

bla bla text bla bla如果此信号1处于打开状态,则做其他事情和其他事情。bla bla text bla如果signal2关闭,那么什么也不做任何其他射击警长。bla bla bla

我要提取:

  1. 如果此信号1正在打开,则做其他事情会做其他事情。

  2. 如果Signal2关闭了

我以这种方式工作:

import readDocx
def main():
text = readDocx.getText('prova.docx')
for line in text.splitlines():
    line = line.strip()
    if line.startswith("IF"):
        print (line)
if __name__ == "__main__":
    main()

其中 readDocx是这样的另一个python文件:

import docx
def getText(filename):
   doc = docx.Document(filename)
   fullText = []
   for para in doc.paragraphs:
       fullText.append(para.text)
   return 'n'.join(fullText)

使用正则表达式:

import readDocx,re
#omitting lines...
pattern = re.compile(r"if (.+).")
for line in text.splitlines():
    if pattern.search(line):
        print(pattern.search()[0])

最新更新