Python-使用列表将数据插入word文档
我有一个包含数据的word文档和两个包含短语的列表。我想在word文档中循环,只要找到某个特定的关键字(在本例中为关键字1和关键字2),就添加一个新行并插入相关列表中的第一项 我下面的代码只是将一个列表中的一项添加到关键字_one,我认为这可能与for循环结构有关-请有人给我指出正确的方向吗 代码: 所需的示例输出: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
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")