Pdf in eine Txt-Datei konfertieren
Verfasst: Mittwoch 17. Oktober 2018, 20:50
Hallo,
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
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