@VoLLioMenTT: die Zeile mit "open..." ist überflüssig, weil Du mit dem geöffneten File-Objekt nichts machst. Einen leeren String zu erzeugen, um dann mit += etwas anzuhängen ist unsinnig, da kann man gleich "y = Seite..." schreiben, wobei i, y, x, prüfe, etc. schlechte Variablennamen sind. Variablennamen sollten aussagen, wofür diese Variable gut ist. "prüfe" ist eine Tätigkeit, Variablen speichern aber Zustände. "geprüft" wäre der Zustand dazu, aber Du hast ja nichts geprüft, sondern das Ergebnis einer Suche, also ist doch "gefunden", oder noch besser, "string_auf_seite_enthalten", wobei wir gleich beim nächsten Problem wären. "find" gibt die Position des gefundenen Strings zurück, Du willst aber nur auf enthalten/nicht enthalten prüfen, dafür gibt es den in-Operator: "string_auf_seite_enthalten = String in x". Explizit auf True zu prüfen ist unsinnig, weil jede Prüfung auf Wahrheit prüft. In der darauffolgenden Zeile versuchst Du eine Liste mit einer Zahl zu addieren, was nicht geht. Du suchst wahrscheinlich "ausgabe.append(i)".
Zur Fehlermeldung: extractText liefert Dir einen String zurück, den Du gleich mit einem anderen String vergleichen könntest, tust Du aber nicht, sondern Du wandelst den Text in Bytes um, was dann nicht mehr mit einem String vergleichbar ist. Bytes in Kleinbuchstaben umzuwandeln, führt auf auch nicht zum gewünschten Ergebnis.
Ist es Absicht, dass Du die erste Seite überspringst?
Code: Alles auswählen
import PyPDF2
print("String eingeben:")
search_string = input()
print("Eingabe: ", search_string)
pdf_file = PyPDF2.PdfFileReader("test.pdf")
page_count = pdf_file.getNumPages()
print("Seitenanzahl: ", page_count)
pages_found = []
for page_num in range(1, page_count): # ignore page 1
page = pdf_file.getPage(page_num)
page_text = page.extractText().lower()
if search_string in page_text:
pages_found.append(page_num)
print(pages_found)