nun die Überschrift ist nicht ganz richtig.
Ich bin gerade dabei mit python und tkinter ein kleines Verwaltungstool
zu basteln, dass ich privat für eine komfortable Erstellung v. Rechnungsdaten nutzen möchte.
Die Idee erstmal ist folgende:
-Es gibt eine Datei adressen.txt in folgendem Format:
Firma//Firmenname//Genre//Strasse//
dieses Abschnitte können ü,ö,ß, etc. beinhalten.
Ich möchte nun die zweite Position als der eigentlich Firmenname
in ein OptionMenu einlesen.
Leider liest er ziemlichen Müll ein. Das heisst er liest nicht jede Zeile der
Datei ein und wenn er was einliest kommt so was wie \x4c oder so drin vor.
Hier ist mein Code:
Code: Alles auswählen
#!/usr/bin/env python\
# -*- coding: utf-8 -*-
from Tkinter import *
import sys
import codecs
hauptfenster = Tk()
hauptfenster.geometry("1024x768")
hauptfenster.title("Verwaltungsmanager")
frame_einstellungen = LabelFrame(hauptfenster, text="Einstellungen")
#Variablendeklarationen
#Variable f\'fcr Radiobuttonauswertung
radio_ausgabe=StringVar(frame_einstellungen)
radio_ausgabe.set("Rechnung")
radio1=Radiobutton(frame_einstellungen,text="Rechnung",value="Rechnung",variable=radio_ausgabe,command="radio_ausgabe")
radio2=Radiobutton(frame_einstellungen,text="Angebot",value="Angebot",variable=radio_ausgabe,command="radio_ausgabe")
radio3=Radiobutton(frame_einstellungen,text="Mahnung",value="Mahnung",variable=radio_ausgabe,command="radio_ausgabe")
radio4=Radiobutton(frame_einstellungen,text="2.Mahnung",value="2.Mahnung",variable=radio_ausgabe,command="radio_ausgabe")
radio5=Radiobutton(frame_einstellungen,text="3.Mahnung",value="3.Mahnung",variable=radio_ausgabe,command="radio_ausgabe")
radio1.pack(side="left")
radio2.pack(side="left")
radio3.pack(side="left")
radio4.pack(side="left")
radio5.pack(side="left")
frame_einstellungen.pack(fill="both")
######################################\
# Welche Dokument soll erstellt werden\
#
# Radiobuttons auswerten\
#
#####################################\
if radio_ausgabe.get() == "Rechnung": #Wenn Radiobutton Rechung gedrückt wurde
#Firmenlogo#
frame_firmenlogo=LabelFrame(hauptfenster,text="Firmenlogo")
logo_button=Button(frame_firmenlogo,text="\'c4ndern/\'dcbernehmen")
label_logo_txt=Label(frame_firmenlogo,text="Aktuell geladenes Logo: ")
label_logo_pfad=Label(frame_firmenlogo,text="pfad")
label_logo_txt.pack(side="left")
label_logo_pfad.pack(side="left")
logo_button.pack(side="left")
frame_firmenlogo.pack(fill="both")
#Ende Firmenlogo#
#Adresskopf#\
frame_adresse=LabelFrame(hauptfenster,text="Adresskopf")
frame_adresse.pack(fill="both")
#Adresse wird aus einer Datei gelesen!
# Dateiname ermitteln\
dateiname = "/Users/user/Desktop/Kunden/adressen.txt" #Expliziten Pfad angeben
daten=[]
i=0
# Datei lesen
try:
datei = codecs.open(dateiname, 'r', 'utf-8') #warum gehen trotzdem keine umlaute?
for line in datei.readlines(): #Zeilenweise
adresse =''.join(line) #Liste -> String für split
adressen_namen = adresse.split('//') #// ist das Trennzeichen
daten.insert(i,adressen_namen[1])#Geb mir die Daten an der zweiten Stelle und mach ne Kiste draus
default="irgendeinwert"
adress_box=OptionMenu(frame_adresse,default,daten)#Schreibe die Liste in das OptionMenu
i=i+1
print daten
datei.close()
except IOError:
print dateiname, "ist nicht lesbar"
sys.exit(1)
#Ende Adresskopf#
adress_box.pack(side="left")
hauptfenster.mainloop()
#Was läuft das falsch?