我正在尝试使用Python解决一个问题,这个问题涉及到图像文件的目录路径和python-docx库。
我有一个包含100个*.png文件的目录,这些文件是由一个单独的进程创建的独特的二维码:
codes_dir
├── qr_code001.png
├── qr_code002.png
├── qr_code003.png
├── qr_code004.png
├── qr_code005.png
etc
我需要将每个*.png二维码嵌入到一个标准的.DOCX文件中,然后保存唯一的结果。.DOCX模板如下所示:
在此之后,每个文件需要如下所示:
然后在一个单独的目录中,我将有一个与每个唯一二维码的基名相对应的唯一.DOCX文件的列表,如下所示:
codes_dir
├── qr_code001.png
├── qr_code002.png
├── qr_code003.png
├── qr_code004.png
├── qr_code005.png
etc
docx_dir
├── qr_code001.docx
├── qr_code002.docx
├── qr_code003.docx
├── qr_code004.docx
├── qr_code005.docx
etc
以下是我在docx_dir
中尝试过的方法
from docx import Document
import glob
import os
def embed_qr_code():
doc = Document("path/to/template.docx")
qr_images = glob.glob("path/to/codes_dir")
for image in qr_images:
image_name = os.path.basename(image)
doc.add_picture(image)
doc.save(f"{image_name}.docx")
embed_qr_code()
我最终得到了100个文件,如下所示:
docx_dir
├── qr_code001.png.docx
├── qr_code002.png.docx
├── qr_code003.png.docx
├── qr_code004.png.docx
├── qr_code005.png.docx
etc
似乎可以工作,但不是每个.DOCX文件一个二维码图像,.DOCX文件包含...好吧,一个二维码都没有。我不明白为什么每个QR图像文件名都是唯一的。
你能帮我理解我做错了什么吗?感谢您能提供的任何帮助。
发布于 2020-09-25 04:29:14
您必须为每个图像打开一个新文件。因此,将Document()
调用向下移动到循环中,如下所示:
def embed_qr_code():
qr_images = glob.glob("path/to/codes_dir")
for image in qr_images:
image_name = os.path.basename(image)
doc = Document("path/to/template.docx")
doc.add_picture(image)
doc.save(f"{image_name}.docx")
否则,doc
会在添加图像时累积图像,因此第一个保存的文档得到一个,第二个文档得到一个加上另一个,依此类推,比如1,2,3,...图像与qr_images
中的图像一样。
https://stackoverflow.com/questions/64053544
复制相似问题