Zusammenfügen von Textdateien
Verfasst: Samstag 5. Februar 2022, 01:22
Hallo zusammen,
ich habe vor kurzem angefangen mich mit Python zu beschäftigen.
Ich habe ein Skript geschrieben welches aus den Seiten eines PDF-Dokuments jpgs macht und diese dann mit tesseract in Textdateien speichert.
Diese haben dann nach dem ursprünglichen Dateinamen den Zusatz "Seitex"
Nun möchte ich diese Textdateien wieder pro eingelesener Datei in eine Textdatei zusammenfügen und verwende dafür folgenden Code:
liste_Textdateien = []
txt_path = r"D:\Masterarbeit\Eingangsrechnungen\Rechnung_Text\\"
txt_name = os.listdir(r"D:\Masterarbeit\Eingangsrechnungen\Rechnung_Text")
for txt in txt_name:
liste_Textdateien.append(txt_path + txt)
for Datei1 in liste_Textdateien:
for Datei2 in liste_Textdateien:
if Datei1[:-11] == Datei2[:-11] and Datei1 != Datei2:
Ausgabe = open(("%s.txt") % (Datei1)[:-11] , "a")
with open((Datei1), "r") as text1, open((Datei2) , "r") as text2:
Ausgabe.write(text1.read())
Ausgabe.write(text2.read())
liste_Textdateien.remove(Datei1)
liste_Textdateien.remove(Datei2)
liste_Textdateien.append("%s.txt" % (Datei1[:-11]))
os.remove(Datei1)
os.remove(Datei2)
elif Datei1[:-11] == Datei2:
Ausgabe = open(Datei2 , "a")
with open((Datei1), "r") as text1, open(Datei2 , "r") as text2:
Ausgabe.write(text1.read())
Ausgabe.write(text2.read())
liste_Textdateien.remove(Datei1)
liste_Textdateien.append("%s.txt" % (Datei1[:-11]))
os.remove(Datei1)
Irgendwie funktioniert das ganze aber nur für eine gerade Anzahl an Dateien. Wenn die Anzahl ungerade ist, bleibt am Ende immer eine übrig.
Was übersehe ich hier?
Und vielen Dank schon einmal für die Hilfe!
ich habe vor kurzem angefangen mich mit Python zu beschäftigen.
Ich habe ein Skript geschrieben welches aus den Seiten eines PDF-Dokuments jpgs macht und diese dann mit tesseract in Textdateien speichert.
Diese haben dann nach dem ursprünglichen Dateinamen den Zusatz "Seitex"
Nun möchte ich diese Textdateien wieder pro eingelesener Datei in eine Textdatei zusammenfügen und verwende dafür folgenden Code:
liste_Textdateien = []
txt_path = r"D:\Masterarbeit\Eingangsrechnungen\Rechnung_Text\\"
txt_name = os.listdir(r"D:\Masterarbeit\Eingangsrechnungen\Rechnung_Text")
for txt in txt_name:
liste_Textdateien.append(txt_path + txt)
for Datei1 in liste_Textdateien:
for Datei2 in liste_Textdateien:
if Datei1[:-11] == Datei2[:-11] and Datei1 != Datei2:
Ausgabe = open(("%s.txt") % (Datei1)[:-11] , "a")
with open((Datei1), "r") as text1, open((Datei2) , "r") as text2:
Ausgabe.write(text1.read())
Ausgabe.write(text2.read())
liste_Textdateien.remove(Datei1)
liste_Textdateien.remove(Datei2)
liste_Textdateien.append("%s.txt" % (Datei1[:-11]))
os.remove(Datei1)
os.remove(Datei2)
elif Datei1[:-11] == Datei2:
Ausgabe = open(Datei2 , "a")
with open((Datei1), "r") as text1, open(Datei2 , "r") as text2:
Ausgabe.write(text1.read())
Ausgabe.write(text2.read())
liste_Textdateien.remove(Datei1)
liste_Textdateien.append("%s.txt" % (Datei1[:-11]))
os.remove(Datei1)
Irgendwie funktioniert das ganze aber nur für eine gerade Anzahl an Dateien. Wenn die Anzahl ungerade ist, bleibt am Ende immer eine übrig.
Was übersehe ich hier?
Und vielen Dank schon einmal für die Hilfe!