Python在docx中一张一张地插入图片

时间:2019-03-10 12:23:03

标签: python python-3.x list arraylist

我有一个包含docx文档的文件夹,另一个具有png图像的文件夹。我的程序应拍摄第一个图像并插入第一个文档,然后应拍摄第二个图像并插入第二个文档,等等。

os.chdir(r"C:\Users\krupn\OneDrive\Работа\ДЛЯ РПН\CreateWord\Result")
filenames = []
filenames.extend(os.listdir("."))
os.chdir (r"C:\Users\krupn\OneDrive\Documents\Pictures\Screenshots")
pictures = glob.glob(r"C:\Users\krupn\OneDrive\Documents\Pictures\Screenshots\*.png")


os.chdir(r"C:\Users\krupn\OneDrive\Работа\ДЛЯ РПН\CreateWord\Result")
for file in filenames:
document = Document (file)
for x in range (0, len(pictures)):
    document.add_picture(pictures[x], width=Inches(10))
document.save (file)

我写了一个代码,但是它将所有图像插入到每个docx文档中。你有解决的办法吗?

1 个答案:

答案 0 :(得分:0)

使用zip函数同时遍历两个列表:

os.chdir(r"C:\Users\krupn\OneDrive\Работа\ДЛЯ РПН\CreateWord\Result")
for picture, file in zip(pictures, filenames):
    document = Document(file)
    document.add_picture(picture, width=Inches(10))
    document.save(file)

还要确保列表中的图像和文件数相同。