Python-使用列表将数据插入word文档

Python-使用列表将数据插入word文档,python,python-3.x,string,list,python-docx,Python,Python 3.x,String,List,Python Docx,我有一个包含数据的word文档和两个包含短语的列表。我想在word文档中循环,只要找到某个特定的关键字(在本例中为关键字1和关键字2),就添加一个新行并插入相关列表中的第一项 我下面的代码只是将一个列表中的一项添加到关键字_one,我认为这可能与for循环结构有关-请有人给我指出正确的方向吗 代码: 所需的示例输出: My ms word document. Keyword_one Some key points here. I have some additional data Other

我有一个包含数据的word文档和两个包含短语的列表。我想在word文档中循环,只要找到某个特定的关键字(在本例中为关键字1和关键字2),就添加一个新行并插入相关列表中的第一项

我下面的代码只是将一个列表中的一项添加到关键字_one,我认为这可能与for循环结构有关-请有人给我指出正确的方向吗

代码:

所需的示例输出:

My ms word document.

Keyword_one
Some key points here. I have some additional data
Other data here

Keyword_two 
Flowers

Heading 1

Keyword_one
We expected values to be higherThat is fine'

Keyword_one 
final attributes

Keyword_two 
My random data. Other random data here

Heading 1

Keyword_two 
Flowers


我认为这应该给你你想要的结果:

from docx import Document

document = Document('mydocx.docx')
my_list = ['Some key points here', 'We expected values to be higher. That is fine', 'final attributes', 'local dataset'] 
my_second_list = ['My random data', 'Flowers. That is fine', 'happy birthday', 'puppies']

i = 0
j = 0
for para in document.paragraphs:
   if 'Keyword_one' in para.text and i < len(my_list):
      para.add_break()
      para.add_run(my_list[i])
      i += 1
   elif 'Keyword_two' in para.text and j < len(my_second_list):
      para.add_break()
      para.add_run(my_second_list[j])
      j += 1

document.save("mydocx.docx")
来自docx导入文档
document=document('mydocx.docx')
my_list=[“此处的一些关键点”,“我们期望值更高。这很好”,“最终属性”,“本地数据集”]
my_second_list=[‘我的随机数据’、‘花。很好’、‘生日快乐’、‘小狗’]
i=0
j=0
对于文件中的段落,段落:
如果段落文本中的“关键字”和i

如果一个段落同时包含两个关键字,并且您希望将其从两个列表中添加,请将
elif
更改为
if

以澄清,您的意思是,当第一个关键字出现时,插入第一个列表的第一项(第二个关键字也一样)-下次第一个关键字再次出现时,使用第一个列表的第二项,等等。?当你看完整个清单后,会发生什么?没错。它可以在到达两个列表的最后一个元素时停止,而不管文档中是否有更多实例谢谢-正是我想要的!
from docx import Document

document = Document('mydocx.docx')
my_list = ['Some key points here', 'We expected values to be higher. That is fine', 'final attributes', 'local dataset'] 
my_second_list = ['My random data', 'Flowers. That is fine', 'happy birthday', 'puppies']

i = 0
j = 0
for para in document.paragraphs:
   if 'Keyword_one' in para.text and i < len(my_list):
      para.add_break()
      para.add_run(my_list[i])
      i += 1
   elif 'Keyword_two' in para.text and j < len(my_second_list):
      para.add_break()
      para.add_run(my_second_list[j])
      j += 1

document.save("mydocx.docx")