Ich kann keine Daten importieren

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
Knuffi
User
Beiträge: 60
Registriert: Dienstag 28. Oktober 2014, 19:52

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
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
Knuffi
User
Beiträge: 60
Registriert: Dienstag 28. Oktober 2014, 19:52

Ahhhhhh.... Danke.... werde mal googlen....
Herzlichen Dank
Knuffi
Knuffi
User
Beiträge: 60
Registriert: Dienstag 28. Oktober 2014, 19:52

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
Knuffi
User
Beiträge: 60
Registriert: Dienstag 28. Oktober 2014, 19:52

sorry Klammer auf
Benutzeravatar
sparrow
User
Beiträge: 4198
Registriert: Freitag 17. April 2009, 10:28

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.
Knuffi
User
Beiträge: 60
Registriert: Dienstag 28. Oktober 2014, 19:52

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)
Benutzeravatar
Dennis89
User
Beiträge: 1157
Registriert: Freitag 11. Dezember 2020, 15:13

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
"When I got the music, I got a place to go" [Rancid, 1993]
bb1898
User
Beiträge: 200
Registriert: Mittwoch 12. Juli 2006, 14:28

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.
Benutzeravatar
Dennis89
User
Beiträge: 1157
Registriert: Freitag 11. Dezember 2020, 15:13

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
"When I got the music, I got a place to go" [Rancid, 1993]
Antworten