Return in Loop Problem

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
DMD-OL
User
Beiträge: 315
Registriert: Samstag 26. Dezember 2015, 16:21

hi nocheinmal :roll:
wieso funktioniert der code ohne probleme mit
print data und nicht mit return data (was ich brache)?
Zum Auslesen einer Textdatei:

Code: Alles auswählen

        
        def chunks(fh, size):
            while 1:
                startat = fh.tell()
                # print startat #file's object current position from the start
                fh.seek(size, 1)  # offset from current postion -->1
                data = fh.readline()
                yield startat, fh.tell() - startat  # doesnt store whole list in memory
                if not data or self.run_string is False:
                    break
        
        for ele in chunks(fh, size):
            self.prog_varfile.set(ele[0])
            self.daten.set("Verarbeitet:  " + str(ele[0]) + " Bytes / " +
                           str(filesize) + " Bytes")
            self.sizecall.set("In Bearbeitung:  " + str(size) + " Bytes")
            self.zeit_var.set("Verbleibend: " + str(teiler) + " Prozesse")
            teiler -= 1
            fh.seek(ele[0])  # startat
            data = fh.read(ele[1])  # endat
            #print data #alles tip top in ordnung
            return data # alles im arsch
die funktion rufe ich hiermit auf:

Code: Alles auswählen

            with fh:
                ass_name, ass_ending = work[2].split('.')
                if ass_name == 'DATANORM':
                    try:
                        int(ass_ending)
                        print "DATANORM.001-.999: '{}'".format(datafile)
                        if os.path.isfile(datafile):
                            #self.get_data(fh, datafile)
                            print self.get_data(fh, datafile)
  
wenn ich return data benutze, ist das tkinter.fenster mit progressbar, etc. komplett weiß.
Benutzeravatar
__blackjack__
User
Beiträge: 13069
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@DMD-OL: ``return data`` gibt `data` vom ersten Schleifendurchlauf an den Aufrufer zurück. Das heisst es beendet die Schleife.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten