ich bin noch recht neu in der Welt des Programmierens und versteh leider komplett und gar nicht wo mein Fehler ist.
Ich möchte eine pdf-Datei einlesen und in eine txt-Datei schreiben, um später damit weiterarbeiten zu können.
Online habe auf der Seite: https://github.com/shakkaist/Python/blo ... nverter.py einen Code gefunden, um besagte Funktion für mehrer Dateien anzuwenden.
Leider erhalte ich immer nachfolgende Fehlermeldung:
C:\ProgramData\Anaconda3\python.exe C:/Users/Amy_6/Desktop/Uni/Python/Probeprojekt/Datei/Pdftotxt.py
Traceback (most recent call last):
File "C:/Users/Amy_6/Desktop/Uni/Python/Probeprojekt/Datei/Pdftotxt.py", line 50, in <module>
convertMultiple(pdfDir, txtDir)
File "C:/Users/Amy_6/Desktop/Uni/Python/Probeprojekt/Datei/Pdftotxt.py", line 41, in convertMultiple
text = convert(pdfFilename) # get string of text content of pdf
File "C:/Users/Amy_6/Desktop/Uni/Python/Probeprojekt/Datei/Pdftotxt.py", line 23, in convert
infile = file(fname, 'rb')
NameError: name 'file' is not defined
Process finished with exit code 1
Da ich Python 3.6.6 benutze, musst ich den Code etwas anpassen, wie unten aufgeführt. Kann mir jemand von euch weiterhelfen wo genau mein Fehler liegt ?
import os
import io
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
# converts pdf, returns its text content as a string
def convert(fname, pages=None):
if not pages:
pagenums = set()
else:
pagenums = set(pages)
output = io.StringIO()
manager = PDFResourceManager()
codec = 'utf-8'
converter = TextConverter(manager, output, codec=codec, laparams=LAParams())
interpreter = PDFPageInterpreter(manager, converter)
infile = file(fname, 'rb')
#for page in PDFPage.get_pages(infile, pagenums):
#infile = open(fname, 'rb')
for page in PDFPage.get_pages(infile, pagenums, caching=caching, check_extractable=True):
interpreter.process_page(page)
infile.close()
converter.close()
text = output.getvalue()
output.close
return text
def convertMultiple(pdfDir, txtDir):
if pdfDir == "": pdfDir = os.getcwd() + "\\" # if no pdfDir passed in
for pdf in os.listdir(pdfDir): # iterate through pdfs in pdf directory
fileExtension = pdf.split(".")[-1]
if fileExtension == "pdf":
pdfFilename = pdfDir + pdf
text = convert(pdfFilename) # get string of text content of pdf
textFilename = txtDir + pdf + ".txt"
textFile = open(textFilename, "w") # make text file
textFile.write(text) # write text to text file
# textFile.close
pdfDir = r"C:\Users\Amy_6\Desktop\Uni\Python\Probeprojekt\Datei"
txtDir = r"C:\Users\Amy_6\Desktop\Uni\Python\Probeprojekt\Datei"
convertMultiple(pdfDir, txtDir)
Vielen Dank für eure Hilfe!
Viele Grüße
