无法使用Python脚本将PDF转换为文本

0 投票
2 回答
1264 浏览
提问于 2025-04-16 05:40

我想把一个特定文件夹里的所有 .pdf 文件转换成 .txt 格式,打算用 pdftotext 这个命令来实现...不过我想用一个 Python 脚本来完成这个任务...

我的脚本内容是:

import glob 
import os

fullPath = os.path.abspath("/home/eth1/Downloads")

for fileName in glob.glob(os.path.join(fullPath,'*.pdf')):
   fullFileName = os.path.join(fullPath, fileName)
   os.popen('pdftotext fullFileName')

但是我遇到了以下错误:

Error: Couldn't open file 'fullFileName': No such file or directory.

2 个回答

1

把最后一行改成这样:

os.open('pdftotext {0}'.format(fullFileName))

这样的话,传递的将是fullFileName的值,而不是名字。

3

你现在是把 fullFileName 直接传给 os.popen。你应该这样做(假设 fullFileName 不需要转义):

os.popen('pdftotext %s' % fullFileName)

另外要注意的是,os.popen 已经不推荐使用了,最好用 subprocess 模块来代替:

import subprocess
retcode = subprocess.call(["/usr/bin/pdftotext", fullFileName])

这样做也更安全,因为它能正确处理 fullFileName 中的空格和特殊字符。

撰写回答