我使用了这段代码将PDF转换为文本。
input1 = '//Home//Sai Krishna Dubagunta.pdf'
output = '//Home//Me.txt'
os.system(("pdftotext %s %s") %( input1, output))
我已经创建了“Home”目录并将源文件粘贴到其中。
我得到的输出结果是:
1
没有创建带有 .txt 扩展名的文件。问题出在哪里?
我使用了这段代码将PDF转换为文本。
input1 = '//Home//Sai Krishna Dubagunta.pdf'
output = '//Home//Me.txt'
os.system(("pdftotext %s %s") %( input1, output))
我已经创建了“Home”目录并将源文件粘贴到其中。
我得到的输出结果是:
1
有多种Python包可用于从PDF中提取文本。您可以查看速度/质量基准。
作为pypdf
和PyPDF2
的维护者,我有偏见,但我建议初学者使用pypdf
。它是纯Python编写的,采用BSD 3条款许可证。对大多数人来说,这应该就够了。此外,pypdf可以在PDF文件中执行更多操作(例如转换)。
如果您熟悉C依赖项并且不想修改PDF,请尝试使用pypdfium2。pypdfium2非常快,而且提取质量非常好。
我之前推荐过popplers pdftotext。不要使用它。它的质量比PDFium / PyPDF2还要差。
Tika和PyMuPDF的效果与PDFium类似,但它们也具有非Python依赖性。由于商业许可证的原因,PyMuPDF可能无法适用于您。
我不建议使用pdfminer / pdfminer.six / pdfplumber / pdftotext / borb / PyPDF2 / PyPDF3 / PyPDF4。
安装:pip install pypdf
(更多说明)
from pypdf import PdfReader
reader = PdfReader("example.pdf")
text = ""
for page in reader.pages:
text += page.extract_text() + "\n"
安装:pip install pypdfium2
import pypdfium2 as pdfium
text = ""
pdf = pdfium.PdfDocument(data)
for i in range(len(pdf)):
page = pdf.get_page(i)
textpage = page.get_textpage()
text += textpage.get_text()
text += "\n"
[g.close() for g in (textpage, page)]
pdf.close()
pdftotext
要求您首先安装 poppler
,在 Windows 上有点麻烦。 (https://dev59.com/blcO5IYBdhLWcg3wXwh3) - smci您的表达
("pdftotext %s %s") %( input1, output)
我会翻译成
pdftotext //Home//Sai Krishna Dubagunta.pdf //Home//Me.txt
pdftotext
的第一个参数是//Home//Sai
,第二个参数是Krishna
。显然这是行不通的。
请用引号将这些参数括起来:
os.system("pdftotext '%s' '%s'" % (input1, output))
pdftotext '//Home//Sai Krishna Dubagunta.pdf' '//Home//Me.txt'
会发生什么? - Tim Pietzcker我认为 pdftotext 命令只接受一个参数。请尝试使用:
os.system(("pdftotext %s") % input1)
然后看看会发生什么。希望这能有所帮助。