Absturz beim wiederholten Ausführen von pylab.show

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
JW55
User
Beiträge: 1
Registriert: Montag 9. Juli 2007, 16:08

Montag 9. Juli 2007, 16:31

Hallo,

ich habe mit Hilfe von Boa Constructor ein kleines Programm geschrieben, das Zahlen aus zwei Spalten einer txt Datei einliesst und diese graphisch darstellt (im Beispiel-Code sehr vereinfacht). Wenn ich nun das Programm starte und eine Datei einlese wird der Plot ohne Probleme dargestellt. Öffne ich nun eine zweite Datei wird zwar auch die Grafik dargestellt, aber es dauert länger und endet mit einem Runtime Error. Ich arbeite unter WindowsXP und habe von allen notwendigen Modulen die neueste Version installiert. Ich denke der Fehler liegt im Befehl pylab.show().



Code: Alles auswählen

import wx, pylab
from pylab import *
def create(parent):
    return Frame1(parent)

[wxID_FRAME1, wxID_FRAME1BUTTON1, 
] = [wx.NewId() for _init_ctrls in range(2)]

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(378, 277), size=wx.Size(400, 250),
              style=wx.DEFAULT_FRAME_STYLE, title='Frame1')
        self.SetClientSize(wx.Size(392, 223))

        self.button1 = wx.Button(id=wxID_FRAME1BUTTON1, label='button1',
              name='button1', parent=self, pos=wx.Point(96, 8),
              size=wx.Size(200, 80), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnButton1Button,
              id=wxID_FRAME1BUTTON1)

    def __init__(self, parent):
        self._init_ctrls(parent)
                
    def OnButton1Button(self, event):
        data = 0       
        rec = []
        filename = ""
        data = ""
        X = []
        Y = []
        dlg = wx.FileDialog(self, "Enter file name with Declination and Inclination: ", ".", "", "*.*", wx.OPEN)
        try:
            if dlg.ShowModal() == wx.ID_OK:
                filename = dlg.GetPath()
                input = open(filename,'r')
                data = input.readlines()
            for line in data:
                rec=line.split("\t")
                if rec[0]=="":                              #ueberspringt leere Zeilen
                    continue
                X.append(float(rec[0]))
                Y.append(float(rec[1]))
                
            pylab.plot(X, Y)   
            pylab.show()
                   
                
        finally:
            dlg.Destroy()
            input.close()
Antworten