ich bin ziemlich neu in der Python-Welt und fühle mich dort wohl. Insbesondere weil ich mir viele Hilfen aus diesem fantastischem Forum holen kann. Nun habe ich gedacht, ich zeige einmal, was ich hier alles gelernt habe:
Ich habe ein Skript gefertigt, dass beim Lösen von Kreuzworträtseln helfen soll. Man gibt in der GUI, die bekannten Buchstaben ein und füllt alle unbekannten Zeichen mit einem Minuszeichen auf. Beispiel: bei -a-s zeigt das Skript u.a. haus und maus an.
Hier der Code:
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
import wx
import os
def create(parent):
return Frame1(parent)
[wxID_FRAME1, wxID_FRAME1BUTTON, wxID_FRAME1EINGABE, wxID_FRAME1PANEL1,
wxID_FRAME1STATICTEXT1, wxID_FRAME1AUSGABE,
] = [wx.NewId() for _init_ctrls in range(6)]
class Frame1(wx.Frame):
def _init_ctrls(self, prnt):
# generated method, don't edit
wx.Frame.__init__(self, id=wxID_FRAME1, name='', parent=prnt,
pos=wx.Point(82, 329), size=wx.Size(400, 250),
style=wx.DEFAULT_FRAME_STYLE, title=u'Rätselhilfe')
self.SetClientSize(wx.Size(392, 223))
self.panel1 = wx.Panel(id=wxID_FRAME1PANEL1, name='panel1', parent=self,
pos=wx.Point(0, 0), size=wx.Size(392, 223),
style=wx.TAB_TRAVERSAL)
self.staticText1 = wx.StaticText(id=wxID_FRAME1STATICTEXT1,
label='Bitte Wortmuster eingeben (Minuszeichen gleich Platzhalter)',
name='staticText1', parent=self.panel1, pos=wx.Point(8, 8),
size=wx.Size(287, 13), style=0)
self.eingabe = wx.TextCtrl(id=wxID_FRAME1EINGABE, name='eingabe',
parent=self.panel1, pos=wx.Point(8, 24), size=wx.Size(376, 21),
style=0, value='')
self.button = wx.Button(id=wxID_FRAME1BUTTON, label=u'Lösungshilfe',
name='button', parent=self.panel1, pos=wx.Point(8, 48),
size=wx.Size(376, 23), style=0)
self.button.Bind(wx.EVT_BUTTON, self.loesen, id=wxID_FRAME1BUTTON)
self.ausgabe = wx.TextCtrl(id=wxID_FRAME1AUSGABE, name='ausgabe',
parent=self.panel1, pos=wx.Point(8, 80), size=wx.Size(376, 144),
style=wx.TE_MULTILINE, value='')
self.ausgabe.SetAutoLayout(False)
def __init__(self, parent):
self._init_ctrls(parent)
def loesen(self, event):
suchwort = self.eingabe.GetValue()
self.ausgabe.SetValue("")
suchwort_laenge = len(suchwort)
ausgabe = file(os.path.join(os.getcwd(),"woerter.dic"),'r')
test = False
count = 0
while test == False:
wort = ausgabe.readline()
if wort == "":
test = True
else:
wort = wort[0:len(wort)-1]
if len(wort) == suchwort_laenge:
testwort = True
for i in range(suchwort_laenge):
if suchwort[i] != "-":
if wort[i] != suchwort[i]:
testwort = False
if testwort == True:
count += 1
self.ausgabe.WriteText(wort+"\n")
ausgabe.close()
self.ausgabe.WriteText("\n" + str(count) +" Wörter gefunden.\n\nSuchvorgang abgeschlossen.")
event.Skip()
app = wx.PySimpleApp(0)
frame = Frame1(None)
frame.Show()
app.MainLoop()
Um dieses für das Skript anzupassen, habe ich folgendes Zusatzskript gefertigt:
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: iso-8859-1 -*-
'''
Wandelt das Wörterbuch von OOO in ein lesbares Format für das Script Rätselhilfe um
'''
dateiname_OOO_Dic = "de_DE.dic"
def main():
print u"Ich wandel jetzt das Woerterbuch um."
print "Bitte warten\n"
eingabe = file(dateiname_OOO_Dic)
ausgabe = file("woerter.dic","w")
test = "false"
while test == "false":
wort = eingabe.readline().decode("iso-8859-15")
if wort == "":
test = "true"
else:
slash = wort.find("/")
if slash:
wort = wort[0:slash]
wort = wort.lower()
wort = wort.replace(u"ä","ae")
wort = wort.replace(u"ö","oe")
wort = wort.replace(u"ü","ue")
wort = wort.replace(u"ß","ss")
wort = wort.lower()
ausgabe.write(wort.encode("iso-8859-15")+"\n")
eingabe.close()
ausgabe.close()
print "Fertig"
if __name__ == '__main__':
main()