Seite 1 von 1

Ich kann keine Daten importieren

Verfasst: Freitag 8. Oktober 2021, 19:47
von Knuffi
Hallo zusammen,

ich dreh seit Tagen am Rad, mit folgendem Problem:

ich habe ein Python Prg geschrieben, mit dem ich Wetterdaten (Name Wetterlesen.py) aus dem Internet auslesen und weiter verarbeiten kann. Mit meinem jetzigen Programm (hz.py) lade ich die Daten mit

from wetterlesen import wert1, wert2, wert3

ins Programm hz.py nach.

Nach dem Starten von hz.py werden die Daten vom Prg Wetterlesen (also wert1, wert2, wert3) sauber übernommen.

im Prg hz.py sollen alles 4 Std die Wetterwetterinformationen aktualisiert werden. Doch das funktioniert nicht. Es werden keine aktuellen Informationen nachgeladen.

Hat einer von Euch einen Tipp oder Hinweis

Vielen Dank
Knuffi

Re: Ich kann keine Daten importieren

Verfasst: Freitag 8. Oktober 2021, 20:02
von __deets__
Diese Werte werden nur einmal übernommen. So funktioniert Import eben. Das benutzt man daher auch nicht, sondern man Importiert eine Funktion die man aufruft & die dann die Werte zurückgibt.

Re: Ich kann keine Daten importieren

Verfasst: Freitag 8. Oktober 2021, 20:16
von Knuffi
Ahhhhhh.... Danke.... werde mal googlen....
Herzlichen Dank
Knuffi

Re: Ich kann keine Daten importieren

Verfasst: Freitag 8. Oktober 2021, 20:58
von Knuffi
kannst Du mir bitte noch sagen wie der Syntax dafür aussieht?

from wetterlesen.py import function(wert1,wert2,wert3)

Fehlermeldung invalid syntax und der Pfeil zeigt auf die Klammer aus

Re: Ich kann keine Daten importieren

Verfasst: Freitag 8. Oktober 2021, 20:59
von Knuffi
sorry Klammer auf

Re: Ich kann keine Daten importieren

Verfasst: Freitag 8. Oktober 2021, 21:08
von sparrow
Du rätst Syntax. Das funktioniert beim Programmieren nicht.

Eine Funktion definiert man in Pyhton mit 'def' und diese Funktion importierst du dann.
Ich denke aber, dass du hier in dem Vorgehen und der Art der Aufteilung des Programms schon einen Denkfehler hast.

Du solltest deinen Programmcode zeigen.

Re: Ich kann keine Daten importieren

Verfasst: Freitag 8. Oktober 2021, 21:19
von Knuffi
unter diesem Chat habe ich das gefunden:
....
Rufen Sie eine Funktion aus einer anderen Datei in Python auf
from file.py import function(a,b)

Re: Ich kann keine Daten importieren

Verfasst: Freitag 8. Oktober 2021, 21:38
von Dennis89
Hallo,

hier mal ein Beispiel: Du hast eine Datei 'News.py' mit diesem Inhalt:

Code: Alles auswählen

#!/usr/bin/env python3

from random import choice

NEWS = ["Weltuntergang", "Alles halb so wild", "Gott hat es so gewollt"]


def some_news():
    return choice(NEWS)


def main():
    print(some_news())


if __name__ == "__main__":
    main()

In dem gleichen Pfad hast du dein Programm in dem du eine Funktion aus New.py importieren willst. Die Datei hat zum Beispiel diesen Inhalt:

Code: Alles auswählen

#!/usr/bin/env python3

from News import some_news


def main():
    print(f'Hier die neusten Meldungen: {some_news()}')


if __name__ == "__main__":
    main()
Kannst du erkennen, was da passiert?

Grüße
Dennis

Re: Ich kann keine Daten importieren

Verfasst: Samstag 9. Oktober 2021, 20:32
von bb1898
Knuffi hat geschrieben: Freitag 8. Oktober 2021, 21:19 unter diesem Chat habe ich das gefunden:
....
Rufen Sie eine Funktion aus einer anderen Datei in Python auf
from file.py import function(a,b)
Irre ich mich oder ist das gleich doppelt verkehrt? Sicher korrekt:

from file import function

und dann im eigenen Programm an passender Stelle

result = function(a, b)

mit Werten a, b, die im eigenen Programm am Punkt des Funktionsaufrufs existieren.

Ganz sicher bin ich, dass die Dateierweiterung .py beim Import wegbleiben muss und dass man im Normalfall eine Funktion importieren will und nicht das Ergebnis des Funktionsaufrufs. Aber könnte man theoretisch auch Letzteres importieren oder nicht?

Ach ja, und man importiert keine Daten, sondern Funktionen, Klassen oder ganze Moduln - also allemal Code.

Merke: nur weil jemand anderes etwas ins Netz stellt, ist es noch nicht richtig.

Re: Ich kann keine Daten importieren

Verfasst: Samstag 9. Oktober 2021, 20:43
von Dennis89
bb1898 hat geschrieben: Samstag 9. Oktober 2021, 20:32 und dass man im Normalfall eine Funktion importieren will und nicht das Ergebnis des Funktionsaufrufs. Aber könnte man theoretisch auch Letzteres importieren oder nicht?
In den Import gehört kein Funktionsaufruf. Da wirst du auch einen SyntaxError erhalten.

Der Programmierer bestimmt wann die importierte Funktion aufgerufen werden soll. Meist werden ja auch Argumente übergeben. Die "existieren" beim importieren möglicherweise gar nicht.

Ich kann nur noch mal auf mein Beispiel verweisen. Das funktioniert auch, wenn man Argumente übergeben will (Code muss natürlich angepasst werden)


Grüße
Dennis