在 once/an 整个目录的许多文件上运行 ipynb 脚本?

Runinng a ipynb script on many files at once/an entire directory?

我会第一个告诉你,我的Python技能充其量只是初学者,所以请原谅我的无知。

作为背景,我在 Anaconda Jupyter Notebooks 中创建了一个 Python 脚本,它从文件夹 C:\Users\...\PDFs 中读取单个 PDF,提取所述 PDF 的文本,然后通过一些拼接将感兴趣的文本放入它创建的 CSV 文件中。

问题是我想在 数百个 个 PDF 上执行此脚本(ipynb 脚本本身在对单个 PDF 执行时工作得很好,我只是不想继续手动更改 Notebook/Python 脚本中的文件名)。使用 pdfreader,我的脚本以以下内容开头:

import pdfreader
from pdfreader import PDFDocument, SimplePDFViewer
fd = open(r'C:Users\...\PDFs\[pdf name].pdf', 'rb')
viewer = SimplePDFViewer(fd) 
doc = PDFDocument(fd)

这就是我卡住的地方 - 我不知道如何 运行 这个 on/import 文件夹中的所有 PDF。我看到有些人使用带星号的可变文件名,例如 C:\Users\...\PDFs\*.pdf,但我无法做到这一点。似乎可以将我的 ipynb 保存为 py 文件,然后以某种方式 运行 在 Anaconda Prompt 中保存它,但是我一直在努力让这种方法也起作用。我不熟悉 bat 文件,但这些文件似乎也很有潜力。

有谁知道在一个目录中的许多 PDF 上同时 运行 此脚本的方法吗?我已经搜集了很多东西,但我这辈子都想不通。任何帮助将不胜感激! :)

您可以使用 glob 模块收集所有文件名,然后遍历它们。

import pdfreader
from pdfreader import PDFDocument, SimplePDFViewer
from glob import glob

pdf_files = glob(r'C:Users\...\PDFs\*.pdf')

for path in pdf_files:
    fd = open(path, 'rb')
    viewer = SimplePDFViewer(fd) 
    doc = PDFDocument(fd)

    ...
    fd.close()