编写一个 for 循环,在使用 python-docx 模块迭代时创建单独的 docx 文件?
Writing a for loop that creates separate docx files as it iterates using the python-docx module?
在我 运行 我的脚本的那一刻,它能够创建文档并添加指定的文本就好了。
值得注意的是,我添加到文档中的文本是从 html 解析的职位列表。
接下来我要弄清楚的是如何拥有它,所以当我 运行 我的脚本时,它将遍历每个列表,并为每个相应的列表创建一个单独的 docx 文件。
我尝试将 document = Document() 写入 for 循环,但这似乎不起作用,因为它只会为第一个列表创建一个文档。这甚至可能吗?
import requests
from bs4 import BeautifulSoup
from docx import Document
document = Document()
for idx, item in enumerate(opps):
title = item.find('h2').text
description = item.find('p').text.strip()[0:]
link = item.find("a").get("href")
document.add_paragraph(
(f'Title:{title}', f'Description: {description}\n', f'Link: {link}\n')
)
document.save('wordy.docx')
您的文档始终具有相同的名称,因此在循环的每次迭代中您都会覆盖之前的文件。 quickfix 将是:document.save(f'{idx}_wordy.docx')
document = document 也应该在循环内。
在我 运行 我的脚本的那一刻,它能够创建文档并添加指定的文本就好了。 值得注意的是,我添加到文档中的文本是从 html 解析的职位列表。 接下来我要弄清楚的是如何拥有它,所以当我 运行 我的脚本时,它将遍历每个列表,并为每个相应的列表创建一个单独的 docx 文件。 我尝试将 document = Document() 写入 for 循环,但这似乎不起作用,因为它只会为第一个列表创建一个文档。这甚至可能吗?
import requests
from bs4 import BeautifulSoup
from docx import Document
document = Document()
for idx, item in enumerate(opps):
title = item.find('h2').text
description = item.find('p').text.strip()[0:]
link = item.find("a").get("href")
document.add_paragraph(
(f'Title:{title}', f'Description: {description}\n', f'Link: {link}\n')
)
document.save('wordy.docx')
您的文档始终具有相同的名称,因此在循环的每次迭代中您都会覆盖之前的文件。 quickfix 将是:document.save(f'{idx}_wordy.docx')
document = document 也应该在循环内。