当我尝试使用 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(使用前将#替换为@)