While schleife in einer Klasse

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
max793
User
Beiträge: 58
Registriert: Montag 11. Mai 2009, 10:05

hallo zusammen ich habe ein Problem ich will in einer KLasse einen File- wächter programmieren aber irgendwie klappt das nicht!!!
Er springt irgendwie über mein while und macht nicht das was ich will!!!

Wo könnte da der fehler sein????

Code: Alles auswählen

class CL_OPT_MAT:
  # Funktionen:

  def __init__(self):
    self.MATLAB_Pfad                    = "C:/python_ms/"

    self.VAR__Warten                    = "test.txt"


  def Warten_Auf_Geloeschte_Daten(self):
    while  os.path.exists(os.path.koin(self.MATLAB_Pfad , self.VAR__Warten)):    
       time.sleep(2)




  def sovler_finshed(self):
    self.Warten_Auf_Geloeschte_Daten()

##
## ******************************************************************************
##
##
## ******************************************************************************
##

if (__name__ == '__main__'):
  clOpt = CL_OPT_MAT()
  clOpt.sovler_finshed()
Seeker
User
Beiträge: 70
Registriert: Mittwoch 16. September 2009, 19:52

Vielleicht, weil es in Zeile 12 os.path.join heissen sollte und nicht "koin"?
max793
User
Beiträge: 58
Registriert: Montag 11. Mai 2009, 10:05

danke ein tippfehler von mir

Aber ich habe es auch schon ohne join probiert und auch das funktioniert nicht!!!!! irgendwas passt da nicht!!!!
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Code: Alles auswählen

import os.path
import time
class CL_OPT_MAT:

    def __init__(self):
        self.MATLAB_Pfad = "./"
        self.VAR__Warten = "test.txt"

    def Warten_Auf_Geloeschte_Daten(self):
        while  os.path.exists(os.path.join(self.MATLAB_Pfad , self.VAR__Warten)):   
            time.sleep(2)

    def sovler_finshed(self):
        self.Warten_Auf_Geloeschte_Daten()

if (__name__ == '__main__'):
    clOpt = CL_OPT_MAT()
    clOpt.sovler_finshed() 
also bei mir funktioniert das.

wie äußert sich denn das "nicht funktionieren"?
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Probiers mal mit weniger Ausrufezeichen :wink:

Du läßt den Code wirklich exakt so laufen, wie dort steht? Gibt es eine Fehlermeldung?
max793
User
Beiträge: 58
Registriert: Montag 11. Mai 2009, 10:05

er wartet nicht!!! er für die Funktion aus, wenn ich sage er soll was ausschreiben macht er es nur das timesleep oder die schleife machen da probleme
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

ich hab nichts verstanden

hast du eine fehlermeldung oder ähnliches?
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Existiert denn die Datei C:/python_ms/test.txt?
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
max793
User
Beiträge: 58
Registriert: Montag 11. Mai 2009, 10:05

gott muss ich mich nun schämen!!!! ich habe immer mit den flaschen pfaden das gemacht!!!!!!!!! :?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Schade .. ich haette jetzt auf einen Exclamation Overflow getippt.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

max793 hat geschrieben:flaschen pfaden
defnull nennt das bei sich routes
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Was ich mich ja frage ist das hier:

Code: Alles auswählen

class CL_OPT_MAT:
  # Funktionen:
Wenn der OP sich da nicht nur mit der Terminilogie geirrt hat, trifft es doch den Kern: Wozu diese Klasse?

Oder in der Sprache des OP:

Wozu diese Klasse???
Die ist hier komplett unnötig!!!

SCNR ;-)
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

max793 hat geschrieben:gott muss ich mich nun schämen!!!! ich habe immer mit den flaschen pfaden das gemacht!!!!!!!!! :?
Bei "flaschen pfaden" bietet sich der Einsatz von Bottle an.
Seeker
User
Beiträge: 70
Registriert: Mittwoch 16. September 2009, 19:52

Ich kenne das Endziel des Codes nicht, aber weshalb eigentlich nicht einfach so (falls du schlussendlich mehrere Pfade aufrufen möchtest, etc.)?:

Code: Alles auswählen

def datei_pfad():
    MATLAB_pfad = "C:/python_ms/"
    VAR_warten = "test.txt"
    return MATLAB_pfad, VAR_warten

def warten_auf_geloeschte_daten(stamm, datei):
    while os.path.exists(os.path.join(stamm, datei)):
        time.sleep(2)
    print "Daten gelöscht"

def main():
    stamm, datei = datei_pfad()
    warten_auf_geloeschte_daten(stamm, datei)

if __name__ == "__main__":
    main()
Oder wenn es bei einer zuvor definierten Datei bleibt:

Code: Alles auswählen

def main():
    MATLAB_pfad = "C:/python_ms/"
    VAR_warten = "test.txt"
    while os.path.exists(os.path.join(MATLAB_pfad, VAR_warten)):
        time.sleep(2)
    print "Daten gelöscht"

if __name__ == "__main__":
    main()
lg, Seeker
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Seeker hat geschrieben:Ich kenne das Endziel des Codes nicht, aber weshalb eigentlich nicht einfach so (falls du schlussendlich mehrere Pfade aufrufen möchtest, etc.)?:
Ich halte Deinen Code nicht für unbedingt sinnvoll. Wieso eine Funktion schreiben, die eh nur Konstanten zurückliefert? Aber das ganze ohne Klassen zu lösen ist nach Stand der Dinge in der Tat einfacher.

Ich würde es wenn so machen (ungetestet):

Code: Alles auswählen

BASE_PATH = r"C:/python_ms/"

FILENAMES = [r"test.txt"]

def wait_for_remove(filename):
    while os.path.exists(filename):
        time.sleep(2)
    print "Daten gelöscht"

def main():
    for filename in FILENAMES:
        wait_for_remove(os.path.join(BASE_PATH, filename))
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

jbs hat geschrieben:
max793 hat geschrieben:flaschen pfaden
defnull nennt das bei sich routes
*LOL* YMMD :D !!!!!!!!
Bottle: Micro Web Framework + Development Blog
Antworten