ich bekomme bei meiner Anwendung folgende Ausgabe:
Code: Alles auswählen
Traceback (most recent call last):
File "J:\MeineProgramme\Python\Dateien\datei_rw_02.py", line 102, in <module>
root = MyApp()
File "J:\MeineProgramme\Python\Dateien\datei_rw_02.py", line 35, in __init__
self.main()
File "J:\MeineProgramme\Python\Dateien\datei_rw_02.py", line 42, in main
Name = self.ConfigSectionMap("Zone A")
File "J:\MeineProgramme\Python\Dateien\datei_rw_02.py", line 84, in ConfigSectionMap
options = self.Config.options(section)
File "C:\Program Files\Python35\Editor\WinPython-64bit-3.6.0.1Qt5\python-3.6.0.amd64\Lib\tkinter\__init__.py", line 2095, in __getattr__
return getattr(self.tk, attr)
AttributeError: '_tkinter.tkapp' object has no attribute 'Config'
Ich weiss leider auch nicht wie ich die Zeilen-Nr. das Codelisting bekomme.
Meine Anwendung:
Code: Alles auswählen
# -*- coding: utf-8 -*-
"""
Created on Mon Apr 10 12:46:37 2017
@author: Juergen
"""
import tkinter as tk
import configparser
INI_FILE_out = "j:\\MeineProgramme\\Python\\Dateien\\config_sz.ini"
INI_FILE_in = "j:\\MeineProgramme\\Python\\Dateien\\config_in.ini"
ZoneA = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
ZoneB = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
ZoneC = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
ZoneD = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
wert = ""
class MyApp(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
fr = tk.Frame(self)
fr.pack(side='bottom', fill='x')
self.geometry("600x400")
self.title('Test Dateien')
button_ende = tk.Button(self, text = "Beenden", font = 12, command = self.close_fenster)
button_ende.place(x= 500, y= 350)
self.Lb1 = tk.Listbox(self, width = 50)
self.Lb1.place(x=25, y=100)
self.main()
def main(self):
Config = configparser.ConfigParser()
Config.read(INI_FILE_out)
print("Hallo\n")
# INI-Datei lesen
Name = self.ConfigSectionMap("Zone A")
for i in range(len(Name)):
wert = 'ZoneA' + str(i)
ZoneA[i] = Config.get('Zone A', wert )
print("ZoneA%s = %s" % (str(i) , str(ZoneA[i])))
if ZoneA[i] == '1':
print("ZoneA{} = {}".format(i, ZoneA[i]))
# INI-Datei speichern
cfgfile = open(INI_FILE_in,'w')
value_zonea = self.ConfigSectionMap("Zone A")
value_zoneb = self.ConfigSectionMap("Zone B")
value_zonec = self.ConfigSectionMap("Zone C")
value_zoned = self.ConfigSectionMap("Zone D")
Config.set("PASSWORD","Benutzer","Hallo")
Config.set("PASSWORD","Kennwort", "2199")
for i in range(len(value_zonea)):
wert1 = 'ZoneA' + str(i)
wert2 = str(ZoneA[i])
Config.set("Zone A", wert1, wert2)
for i in range(len(value_zoneb)):
wert1 = 'ZoneB' + str(i)
wert2 = str(ZoneB[i])
Config.set("Zone B", wert1, wert2)
for i in range(len(value_zonec)):
wert1 = 'ZoneC' + str(i)
wert2 = str(ZoneC[i])
Config.set("Zone C", wert1, wert2)
for i in range(len(value_zoned)):
wert1 = 'ZoneD' + str(i)
wert2 = str(ZoneD[i])
Config.set("Zone D", wert1, wert2)
Config.write(cfgfile)
cfgfile.close()
def ConfigSectionMap(self, section):
dict1 = {}
options = self.Config.options(section)
for option in options:
try:
dict1[option] = self.Config.get(section, option)
if dict1[option] == -1:
print("skip: %s" % option)
except:
print("exception on %s!" % option)
dict1[option] = None
#return dict1
return dict(self.Config.items(section)) # von:
# http://stackoverflow.com/questions/8578 ... -a-section
def close_fenster(self):
quit()
if __name__ == "__main__":
try:
root = MyApp()
root.mainloop()
root.main()
except (KeyboardInterrupt, SystemExit):
print("Programm Ende")
MfG
Juergen B.