Posts by Danjin

    Nein, brauchst du _nicht_. Du hast lediglich einen konzeptionellen Denkfehler. Wenn die gelesene Liste leer ist, dann überschreibst du die bestehende Liste halt _nicht_. Dann sparst du dir auch die Krücke via old_list oder was auch immer.

    Und wenn die Liste leer ist, dann rufst du halt _nicht_ update_text auf.

    Du solltest hier nochmal die Aufteilung von deinem Code überdenken und das ggf. auf mehr Funktionen aufteilen.

    tatsächlich. Da habe ich einen Denkfehler gehabt und zu sehr meinen altes Codekonstrukt im Kopf gehabt. Danke! sparrt mir einiges an codezeilen :)

    deine Kritik zu Zeile 3 und 15 hat sich damit auch erledigt, weil ich das alles nicht mehr brauche.

    Zeile 4 ist schräg - `__init__` ohne Klasse?

    ich besitze davor eine Klasse.


    Die Frage ist auch, warum du die Liste nicht direkt leer anlegst. Weil: im gezeigten Code wir die Default Liste nie benutzt, sondern wenn nur geleert.

    ich hatte die Struktur so gewählt, weil wenn er gleich am Anfang in den Error läuft, noch keine back_up liste hatte.


    Ansonsten ignorierst du scheinbar geflissentlich, was ich dir zu Variablennamen geschrieben habe. Wenn du früher oder später scheinbar nicht nachvollziehbare Fehler bekommst, denk' einfach nochmal an das, was ich dir in Post #3 geschrieben habe.

    ich ignoriere es nicht. Den Hinweis habe ich dankend angenommen und kümmere mich am Ende (also jetzt) drum :)


    hier mein code

    dann denk' mal scharf drüber nach, ob du list_old überhaupt brauchst... Und wenn du dann richtigerweise zu dem Ergebnis gekommen bist, dass das es nicht brauchst,

    Doch, list_old bzw. mittlerweile list_backup brauche ich unbedingt und das war quasi auch genau das, wonach ich hier fragte. Wenn die Datei nicht gelesen werden kann, ist die Liste leer --> list []. Da ich in meinem code aber auf bestimmte Stelle der Liste zugreife und dies bekanntlich mit einer leeren Listenicht geht, muss in diesem Szenario eine "1sekunde" veraltete Liste benutzt werden.

    Wenn die Datei `test.txt` existiert - egal ob leer oder nicht - , dann wird der `try` Block immer durchlaufen und nie eine Exception werfen.


    Nackte try...except sind fast immer falsch, weil du damit _alle_ Fehler, inkl. Programmierfehler abfängst. Willst du aber nicht.

    habe ich soweit entfernt.


    Welchen Sinn hat das `return` Statement der Funktion `read_txt`?

    das return muss natürlich in _update_Text damit ich die back_up liste aktualisieren kann.

    ich habe das Problem nun soweit gelöst und es funktioniert alles wie ich möchte. habe den code mal hinzugefügt, für leute die das gleiche machen wollen oder die es einfach interessiert

    Hallo,


    Ach stimmt - Denkefehler meinerseits. Dann müsstest du z.B. nach dem Lesen und vor dem Aufruf _update_text z.B. die Länge der Liste prüfen.


    Gruß, noisefloor

    das sollte des Rätsels Lösung sein. Ich beobachte das mal ein paar Stunden und melde mich dann nochmal.


    EDIT:

    Code
    1. File "main.py", line 99, in read_txt
    2. self.update_Text(list_old)
    3. UnboundLocalError: local variable 'list_old' referenced before assignment

    leider nein...


    Gruß

    Richtig, und read_text für _update_text aus. _updatr_text muss ja nicht aufgerufen werden, wenn read_text kein Ergebnis hat.

    ich habe es nun mal so umgesetzt

    leider laufe ich hier in den gleichen error. den index error bekommt er erst in "_update_Text", da er dort in der 2ten Zeile erst merkt, dass die Liste leer ist.



    Äh... du solltest in erster Linie für DICH (!) selbsterklärende Variablen nutzen. Du hast den größten Nutzen davon, nicht wir.


    Gruß, noisefloor

    ich überarbeite die variablen am Ende, danke ! :)

    die variablen heißen bei mir alle anders. Ich wollte hier für euch selbst erklärende variablen nutzen, damit da nicht 10mal nachgefragt werden muss.


    wenn ich deinen code richtig verstehe muss ich nun read_text() regelmäßig ausführen?

    1) Gibt es wirklich einen IndexError beim Lesen des Files??

    soweit ich das als Laie sagen kann, ja. ich bekomme einen List index out of range und als Zeile wird mir:

    Code
    1. self.variable1 = line_list[0]

    genannt. Wenn ich es richtig mutmaße, kann er die Datei nicht lesen wenn die Datei gerade geöffnet wird. Bzw. die Liste mit dem Inhalt bleibt halt leer. Da der nachfolgende code auf bestimmte Stellen der Liste zugreift, folgt der index error.



    2) try .. except gehoert in update_text

    ich habe das mal soweit umgeschrieben. Wie kann ich nun in der exception die alte Liste benutzen ?

    ich benutze kivy in Verbindung mit python und stoße mal wieder an meine Python-Grenzen.


    folgender Code funktioniert, die Funktion "updateText" wird jede Sekunde aufgerufen und liest die Text Datei aus. Wenn nun ein anderes Script die Text Datei gerade bearbeitet (passiert unregelmäßig) , kann die Funktion auf die txt Datei nicht zugreifen und die Liste bleibt leer. Da ich anschließend auf bestimmte Stellen der Liste zugreifen möchte, laufe ich in ein "List index out of range" error

    Code
    1. variable1 = StringProperty()
    2. variable2 = StringProperty()
    3. def updateText(self, dt):
    4. with open("/home/pi/test.txt", "r") as f:
    5. line_list = f.read().splitlines()
    6. self.variable1 = line_list[0]
    7. self.variable2 = line_list[2]

    ich habe es schon hinbekommen, dass lesen in eine eigene Funktion auszulagern und der error abzufangen mit einem except. Ich komme allerdings nicht auf die Logik, wie in dem Moment wenn die Exception mal eintritt einfach die alte liste benutzt wird.

    Kann mir jemand eventuell dort einen Hinweis geben, womit man es realisieren könnte?


    Gruß und voraus schon vielen Dank

    Code
    1. from datetime import datetime
    2. import pytz
    3. from pytz import timezone
    4. europe = timezone('Europe/Amsterdam')
    5. utc = pytz.utc
    6. fmt = '%H:%M:%S %Z%z'
    7. utc_dt = datetime(2000, 10, 27, 13,55, 0, tzinfo=utc)
    8. loc_dt = utc_dt.astimezone(europe)
    9. print(loc_dt.strftime(fmt))

    ich habe nun soweit weiter rumprobiert und er ändert mir nun zumindest die Zeitzone aktuell richtig (fügt 2h zu den 13:55 hinzu)

    <15:55:00 CEST+0200>


    wird dies auch nach der Zeitumstellungen noch sauber funktionieren ? also ändert es dann auf nur noch 1h ? ich verstehe die Dokumentation von pytz leider nicht gut genug... Hofei

    Guten Tag,

    ich besitze folgenden String:
    time_str = '13:55'

    Wenn man nun davon ausgeht, dass der String eine UTC Zeit ist (NICHT die aktuelle UTC Zeit), würde ich den gerne in MEZ umwandeln.
    Wie stelle ich das in Python an ?
    ich möchte halt aus der 13:55 entweder 14:55 oder 15:55 machen, je nachdem ob Winter- oder Sommerzeit ist.


    ich habe mir schon datetime und pytz angeschaut und die sehen mir recht komplex aus und ich habe ja auch kein Datum.

    Code
    1. #das habe ich bisher
    2. time_str = '13:55'
    3. time_object = datetime.strptime(time_str, '%H:%M').time()
    4. print(time_object)
    5. print(type(time_object))
    6. OUTPUT:
    7. 13:55:00
    8. <class 'datetime.time'>

    Gibt es vllt ein Code, um sich die +1 oder +2 Unterschied zur UTC als Zahl zu besorgen. Dann könnte ich die Umrechnung selbst vornehmen.


    Gruß

    Danjin


    https://github.com/requests/re…ib/oauth2_session.py#L155
    http://requests-oauthlib.readt…est/examples/outlook.html


    So wie es aussieht, handhabt das Modul alles für dich. Auch Sessions und Proxies.



    genau dies tut es eben nicht..
    bei authorization_base_url und token_url muss ich das v2.0 rausnehmen, da das azure ad dieses nicht unterstützt.
    kriege an sich ein:
    Missing acces token error raus.


    wenn ich bei token = outlook.fetch_token --> redirect_uri noch mitgebe, komme ich wieder in den proxy error...


    Auch gut. Nun bist du schon mal durch. Jetzt kannst du den nächsten Schritt angehen.


    der da wäre? habe Probleme dieses in meinem obrigen Script zu implementieren, da ich nicht weiß, wo genau die proxy variable mitgegeben werden muss...


    EDIT:
    [code=php]with requests.Session() as session:
    session.get(....)[/php]
    wo soll das genau hin?


    EDIT2:
    im testscript läuft es nun
    also:
    [code=php]with requests.Session() as session:
    r = session.get(URL, proxies=proxies)[/php]
    nur wie soll das nun ins Hauptscript?


    geh mal Stück für Stück vor. Geht folgendes:


    Funktioniert bei mir problemlos und ich komm durch.


    proxies = {'https': 'https://xxxxxx:xxxxx@10.0.2.112:3128'}
    nur so funktioniert es

    Hallo,
    ich habe ein Problem mit meinen Proxy Einstellungen.
    benutze einen Raspberry Pi 3 mit jessie light und Python3.
    möchte eine Oauth2 authentification machen und muss durch den proxy der company.
    proxyadresse,port, username und password etc. ist alles korrekt.
    Was mache ich falsch ?
    mein code(oauth.py)


    Habe mal wieder eine doofe frage.
    wie setze ich in Python3 proxy settings mit username und password ?
    hab bisher:


    Code
    1. import os
    2. proxy = 'https://username:password@Proxyaddresse:Port'
    3. os.environ['http_proxy'] = proxy
    4. os.environ['HTTP_PROXY'] = proxy
    5. os.environ['https_proxy'] = proxy
    6. os.environ['HTTPS_PROXY'] = proxy


    probiert aber da laufe ich in ein connection error mit dem proxy (abfrage läuft über https)
    mir hilft urllib oder request nicht so recht weiter, da ich eine oauth2 authentifizierung machen muss.



    Code
    1. oauth = OAuth2Session(client=LegacyApplicationClient(client_id=client_id)
    2. token = oauth.fetch_token(redirect_uri,token_url,client_id=client_id,username=username,password=password,resource=scope)



    Daher die frage, wie ich allgemein für das Python script, richtig Proxy settings setze