fitz.open() 在 for 循环中不起作用(FITZ、PYTHON、PYMUPDF)

2024-03-13

当我尝试使用 PyMuPDF 中的 fitz 迭代目录(“PDFS”)中的文件时,我遇到了困难。 问题是,当我只是执行 document = "somepdf.pdf" 时,代码可以工作,但是一旦我插入 for 循环并尝试访问文件,就会出现此错误:

文件名、流、文件类型、矩形、宽度、高度、字体大小 运行时错误:无法打开sample.pdf:没有这样的文件或目录

这是代码:

for file in os.listdir('PDFS'):
        if fnmatch.fnmatch(file, '*.pdf'):
            document = file
            doc = fitz.open(document)

感谢您的帮助!


您要打开的 pdf 文件位于子目录下PDFS, e.g. PDFS/sample.pdf,而你的代码fitz.open(document)是打开当前工作目录下的文件。所以,修复应该是:

import fitz
import os
import fnmatch

for file in os.listdir('PDFS'):
    if fnmatch.fnmatch(file, '*.pdf'):
        document = os.path.join('PDFS', file)
        doc = fitz.open(document)

此外,相对路径PDFS使用,所以你必须在路径下运行代码PDFS在,说/your/workspace/:

/your/workspace > python code.py

否则,

/your > python workspace/code.py

FileNotFoundError: [WinError 3] The system cannot find the path specified: 'PDFS'

所以,一个好的做法是

  • 使用完整路径如果PDFS只是一个用户输入路径;否则,

  • 使用脚本路径的相对路径

    script_path = os.path.abspath(__file__)
    project_path = os.path.dirname(script_path)
    pdfs_path = os.path.join(project_path, 'PDFS')
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

fitz.open() 在 for 循环中不起作用(FITZ、PYTHON、PYMUPDF) 的相关文章

随机推荐

  • HTML2PDF 无法识别表格的大小

    我正在使用 Yii Extension 开发的网页中工作 并且使用 HTML2PDF 扩展来生成 PDF http html2pdf fr http html2pdf fr 虽然 PDF 生成得很好 但它似乎无法识别我的表格大小 我为一行或
  • FAT32 每个目录的文件数限制

    我目前正在尝试在 Xilinx Kintex 7 卡上用 C 语言编写 FAT 系统 它配备了 MicroBlaze 我已经成功创建了大部分所需的功能 我面临的问题是关于文件夹的总容量 我在网上读到 在 FAT32 中 一个文件夹应该能够包
  • 将 Resharper 测试运行器与 Jasmine 2.0 结合使用

    我正在尝试将 VS2013 中的 Resharper v8 2 测试运行程序与 Jasmine 2 一起使用 但在 beforeEach 调用 全局 时遇到问题 该规范文件有一个对 SpecHelper js 的 脚本引用 该引用调用了 b
  • 从 Kickstarter 项目中抓取文本不会返回任何结果

    我正在尝试从 Kickstarter 项目网页中抓取项目的主要文本 我有以下代码 适用于第一个 URL 但不适用于第二个和第三个 URL 我想知道是否可以轻松修复我的代码而无需使用其他软件包 url https www kickstarte
  • 数组放置新需要缓冲区中未指定的开销?

    5 3 4 expr new C 11 Feb 草案给出了示例 new 2 f T 5 结果调用operator new sizeof T 5 y 2 f 这里 x和y是非负未指定值 表示数组分配开销 的结果新表达将从返回的值中抵消此金额o
  • Flash、Flex、Adobe Air、Java FX 和 Silverlight 到底有什么用?

    Flash Flex Adobe Air Java FX 和 Silverlight 到底有什么用 为什么我会选择其中之一而不是另一个 Java Applet 和 ActiveX 控件发生了什么 哦 AJAX 在哪里适合这一切呢 拉斯洛相关
  • pylint 找不到 QWidget 和 QApplication

    import sys from PyQt5 QtWidgets import QApplication QWidget app QApplication sys argv window QWidget window setGeometry
  • 2D char Array 和 char** 之间的区别(OR、3D char Array 和 char*** 等)

    首先 我已经回顾过这些 多维数组在内存中是如何格式化的 https stackoverflow com questions 2565039 how are multi dimensional arrays formatted in memo
  • Phonegap 屏幕因 AdMob 动画而闪烁

    一位用户报告说 当 admob 广告有动画时 应用程序的 html 视图会 闪烁 这是他录制的一个小视频 http www youtube com watch v gQ7yxzpqfDA http www youtube com watch
  • 从同一类中的另一个构造函数调用构造函数

    我有一个有 2 个构造函数的类 public class Lens public Lens string parameter1 blabla public Lens string parameter1 string parameter2 w
  • 为什么Django的Meta是一个旧式类?

    我注意到在 Django 模型中 有一个class Meta这对模型做了一些额外的定义 我的问题是 为什么这是一个老式的课程 即不子类化object 这是有原因的还是这只是一种习俗 我可以在我的项目中将其作为新式课程吗 我相信没有真正的原因
  • UITableView 延迟图像加载,图像在表格停止滚动后出现

    我使用 NSUrlConnection 为 UITableView 实现了延迟图像加载 这一切都运行得非常好 当我打开桌子时 等待一秒钟 在 3G 上 我会自动获取图像 但是 当我滚动时 表格会加载新单元格 启动 NSURLConnecti
  • Neo4j - 按相关性排序

    我想按 Neo4j 中的相关性对返回的数据进行排序 就我的目的而言 相关性可以简化为 我正在搜索的单词的索引 其中索引越低 相关性越高 Example 我有这三个节点 node Label PROD properties name Bear
  • 使用 java 泛型迭代枚举值

    我试图找到一种在使用泛型时迭代枚举值的方法 不确定如何执行此操作或是否可能 下面的代码说明了我想要做的事情 注意代码T values 在以下代码中无效 public class Filter
  • Javascript:用户完成滚动后执行操作

    我正在想办法做到这一点 我有一个盒子清单 每个盒子都是关于150px高的 我正在使用 javascript 和 jquery 并希望在用户向下滚动页面后 页面将自动滚动 以便框与页面的其余部分对齐 也就是说 如果用户滚动并且 y页面位置不能
  • Spacy - 标记带引号的字符串

    我正在使用 spacy 2 0 并使用带引号的字符串作为输入 示例字符串 The quoted text AA XX should be tokenized 并期望提取 The quoted text AA XX should be tok
  • Aws ecs fargate ResourceInitializationError:无法提取机密或注册表身份验证

    我正在尝试在 aws ecs fargate 1 4 0 平台上运行私有存储库 对于私有存储库身份验证 我遵循了docs https docs aws amazon com AmazonECS latest developerguide p
  • 创建删除线文本?

    我可以在 Android 中创建删除线文本吗 我的意思是在TextView标签可以使这成为可能
  • SQL-Server 中的错误计算

    作为一个例子 我发现了一个简单的计算 例如 select cast 200 00 as float 1908 30 170 00 1150 00 1128 30 作为正常添加 这会导致0 00但 SQL Server 显示结果为2 2737
  • fitz.open() 在 for 循环中不起作用(FITZ、PYTHON、PYMUPDF)

    当我尝试使用 PyMuPDF 中的 fitz 迭代目录 PDFS 中的文件时 我遇到了困难 问题是 当我只是执行 document somepdf pdf 时 代码可以工作 但是一旦我插入 for 循环并尝试访问文件 就会出现此错误 文件名