diff --git a/seminarwahl_cleaner.py b/seminarwahl_cleaner.py index d524eae..630fc46 100644 --- a/seminarwahl_cleaner.py +++ b/seminarwahl_cleaner.py @@ -1,4 +1,6 @@ import re +import sys +import io import tkinter as tk import tkinter.filedialog as tkfd import tkinter.messagebox as tkm @@ -9,26 +11,37 @@ root.rowconfigure(0, weight=3) root.columnconfigure(0, weight=1) root.columnconfigure(1, weight=1) root.columnconfigure(2, weight=1) +root.columnconfigure(3, weight=1) content = "" content_lines = list() newcontent = "" fname = "" +if sys.platform == "win32": + out_encoding = "cp1252" +else: + out_encoding = "utf-8" + def load_file(event=None): global content global content_lines global fname fname = tkfd.askopenfilename(filetypes=(("CSV files","*.csv"),("text files","*.txt"))) - try: - f = open(fname, mode='r') + try: + f = io.open(fname, mode='rt', encoding='utf-8', newline="") # mit allen Steuerzeichen content = f.read() - f.seek(0) - for line in f: + content = content.replace("\r","") + content_orig_lines = content.split("\n") + for line in content_orig_lines: + line = line.replace("\r","") + print(line) content_lines.append(line) t_preview.insert(0.0,content) f.close() - except: + except Exception as e: + print(e) + content = [""] tkm.showerror(title="Fehler beim Öffnen", message="Öffnen der Datei fehlgeschlagen.") @@ -44,8 +57,12 @@ def clean(event=None): tc = [e.strip() for e in tc] print(tc) # Umsortieren - tcnew = [tc[-1]] + [tc[1]] + [tc[0]] + tc[2:-1] - tcnew[-1] = tcnew[-1] + "\n" + try: + tcnew = [tc[-1]] + [tc[1]] + [tc[0]] + tc[2:-1] + tcnew[-1] = tcnew[-1] + "\n" + except Exception as e: + print(e) + break newline = ",".join(tcnew) newcontent += newline t_preview.insert(0.0,newcontent) @@ -54,6 +71,7 @@ def clean(event=None): def save_file(event=None): global fname global newcontent + global out_encoding if fname == "": tkm.showerror(title="Fehler beim Speichern", @@ -62,11 +80,12 @@ def save_file(event=None): fname_new = fname[:-4] + "c" + ".csv" try: - f = open(fname_new, mode='w') + f = open(fname_new, mode='w', encoding=out_encoding, errors='replace') f.write(newcontent) tkm.showinfo(title="Gespeichert", message="Datei unter {} gespeichert.".format(fname_new)) - except: + except Exception as e: + print(e) tkm.showerror(title="Fehler beim Speichern", message="Speichern fehlgeschlagen") @@ -86,7 +105,7 @@ bt_quit = tk.Button(root, text="Beenden", fg="red") bt_quit.grid(row=0, column=3) bt_quit["command"] = root.destroy -t_preview = tk.Text(root, height = 10, width = 150) +t_preview = tk.Text(root, height = 15, width = 150) t_preview.grid(row=1, column=0, columnspan=3, sticky="nwse") root.mainloop()