import re import tkinter as tk import tkinter.filedialog as tkfd import tkinter.messagebox as tkm root = tk.Tk() root.rowconfigure(0, weight=1) root.rowconfigure(0, weight=3) root.columnconfigure(0, weight=1) root.columnconfigure(1, weight=1) root.columnconfigure(2, weight=1) content = "" content_lines = list() newcontent = "" fname = "" 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') content = f.read() f.seek(0) for line in f: content_lines.append(line) t_preview.insert(0.0,content) f.close() except: tkm.showerror(title="Fehler beim Öffnen", message="Öffnen der Datei fehlgeschlagen.") def clean(event=None): global content_lines global newcontent newcontent = "" t_preview.delete(0.0,tk.END) for line in content_lines: newline = re.sub(r"\s[(][a-zA-Zäöü\s]*[)]", "", line) # Fächer newline = re.sub(r'["]', "", newline) # Anführungszeichen tc = re.split(',', newline) 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" newline = ",".join(tcnew) newcontent += newline t_preview.insert(0.0,newcontent) def save_file(event=None): global fname global newcontent if fname == "": tkm.showerror(title="Fehler beim Speichern", message="Speichern fehlgeschlagen") return 1 fname_new = fname[:-4] + "c" + ".csv" try: f = open(fname_new, mode='w') f.write(newcontent) tkm.showinfo(title="Gespeichert", message="Datei unter {} gespeichert.".format(fname_new)) except: tkm.showerror(title="Fehler beim Speichern", message="Speichern fehlgeschlagen") bt_choose_file = tk.Button(root, text="Datei auswählen") bt_choose_file.grid(row=0, column=0) bt_choose_file["command"] = load_file bt_clean = tk.Button(root, text="Bereinigen") bt_clean.grid(row=0, column=1) bt_clean["command"] = clean bt_save_file = tk.Button(root, text="Speichern") bt_save_file.grid(row=0, column=2) bt_save_file["command"] = save_file 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.grid(row=1, column=0, columnspan=3, sticky="nwse") root.mainloop()