93 lines
2.6 KiB
Python
93 lines
2.6 KiB
Python
|
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()
|