<p>评论太长了,我还没有亲自测试过这段代码,这段代码看起来与你在问题中的大纲非常相似,但是我在这里添加代码供其他人测试。它是Pull请求<a href="https://github.com/mstamy2/PyPDF2/pull/440" rel="nofollow noreferrer">https://github.com/mstamy2/PyPDF2/pull/440</a>的主题,下面是Kevin M Loeffler在<a href="https://kevinmloeffler.com/2018/07/08/how-to-extract-pdf-file-attachments-using-python-and-pypdf2/" rel="nofollow noreferrer">https://kevinmloeffler.com/2018/07/08/how-to-extract-pdf-file-attachments-using-python-and-pypdf2/</a>中描述的完整更新序列</p>
<p>可在<a href="https://gist.github.com/kevinl95/29a9e18d474eb6e23372074deff2df38#file-extract_pdf_attachments-py" rel="nofollow noreferrer">https://gist.github.com/kevinl95/29a9e18d474eb6e23372074deff2df38#file-extract_pdf_attachments-py</a>查看</p>
<p>下载为
<a href="https://gist.github.com/kevinl95/29a9e18d474eb6e23372074deff2df38/raw/acdc194058f9fa2c4d2619a4c623d0efeec32555/extract_pdf_attachments.py" rel="nofollow noreferrer">https://gist.github.com/kevinl95/29a9e18d474eb6e23372074deff2df38/raw/acdc194058f9fa2c4d2619a4c623d0efeec32555/extract_pdf_attachments.py</a></p>
<p>如果您能<strong>提供一个您有问题的类型的示例输入<strong>,以便其他人能够调整提取例程以适合您,那么它总是有帮助的</p>
<p><strong>对收到错误的响应</strong>
“我猜脚本正在崩溃,因为PDF的embedded files部分并不总是存在,因此尝试访问它会引发错误。”
“我会尝试将所有内容放在try catch中get_attachments方法的‘catalog’行之后。”</p>
<p>不幸的是,有许多未包含在PyPDF2<a href="https://github.com/mstamy2/PyPDF2/pulls" rel="nofollow noreferrer">https://github.com/mstamy2/PyPDF2/pulls</a>中的未决请求,其他请求也可能与此相关或需要帮助解决此缺陷和其他缺陷。因此,你需要看看这些是否也有帮助</p>
<p>对于一个您可能能够包括/并适应其他用例的try-catch的挂起示例,请参见<a href="https://github.com/mstamy2/PyPDF2/pull/551/commits/9d52ef517319b538f007669631ba6b778f8ec3a3" rel="nofollow noreferrer">https://github.com/mstamy2/PyPDF2/pull/551/commits/9d52ef517319b538f007669631ba6b778f8ec3a3</a></p>
<p>除了<code>/Type/EmbeddedFiles</code>之外的嵌入文件的相关关键字包括<code>/Type /Filespec</code>&<code>/Subtype /FileAttachment</code>请注意,这些对可能并不总是有空格,因此可以查看这些对是否可以查询附件</p>
<p>同样在最后一点上,该示例搜索以复数形式编制索引的/EmbeddedFiles,而任何单个条目本身都被标识为单数</p>