@Leonidas: Danke für den Code-Hinweis. Werde ich bald auf der Seite entsprechend ändern.
Viele Grüße
Mit Python in Speicher schreiben?
- dieter1a
- User
- Beiträge: 75
- Registriert: Montag 26. Februar 2007, 13:08
- Wohnort: Bad Rothenfelde
- Kontaktdaten:
Die Verbindung klappt soweit.Leonidas hat geschrieben:Code: Alles auswählen
import urllib remote_file = urllib.urlopen('http://dein.server.vielleicht.mit.sinnloser.berlin/tld/und.deiner.datei.txt') remote_file_contents = remote_file.read() remote_file.close()
Der Server liefert mir eine Integer-Variable mit Namen ex.
Jetzt möchte ich natürlich diese Variable extraieren und auswerten.
Wie komme ich an diese Variable?
Das php Script lefert mir mit: echo "ex{".$exist."}ex"; den Integer.
Für ein Code_Schnipsel wäre ich sehr dankbar, weil ich noch lange nicht "der Pythonfachmann" bin.
Vielleicht solltest Du mal das Python-Tutorial durcharbeiten.
Und verraten was "Der Server liefert mir eine Integer-Variable mit Namen ex." bedeutet. Der Server liefert Dir eine Zeichenkette. Wie sieht die aus?
Und verraten was "Der Server liefert mir eine Integer-Variable mit Namen ex." bedeutet. Der Server liefert Dir eine Zeichenkette. Wie sieht die aus?
- dieter1a
- User
- Beiträge: 75
- Registriert: Montag 26. Februar 2007, 13:08
- Wohnort: Bad Rothenfelde
- Kontaktdaten:
Die php-Seite liefer mir keine Zeichenkette, sondern Variablen in denen Datenbankinhalte verpackt sind.
In diesem Fall wird nur die Verbindung zum Server getestet.
Hat die Variable nicht einen bestimmten Wert, sagen wir mal 10, ist die Verbindung zum Server fehlgeschlagen.
Da in der Datenbank auch Vektoren, jede Menge Text, Floatwerte usw gespeichert sind, wäre es doch quatsch mir Zeichenketten liefern zu lassen.
Oder?
In diesem Fall wird nur die Verbindung zum Server getestet.
Hat die Variable nicht einen bestimmten Wert, sagen wir mal 10, ist die Verbindung zum Server fehlgeschlagen.
Da in der Datenbank auch Vektoren, jede Menge Text, Floatwerte usw gespeichert sind, wäre es doch quatsch mir Zeichenketten liefern zu lassen.
Oder?
Also irgendwo besteht hier ein Missverständnis. Ich dachte Du holst aus einem Python-Skript heraus Daten per `urllib`!? Da werden Bytes übertragen, d.h. eine Folge oder Kette von Bytes, die in Python mit dem Datentyp `str` also als Zeichenkette verarbeitet werden.
- dieter1a
- User
- Beiträge: 75
- Registriert: Montag 26. Februar 2007, 13:08
- Wohnort: Bad Rothenfelde
- Kontaktdaten:
Ich sende an die .php auf dem Server Variablen mit unterschiedlichen Inhalten. Das können schonmal bis zu 10 Variablen sein, die dann im php-Script je nach Name der Variablen ausgewertet werden und die Datenbank wird mit den Inhalten gefüttert.
Das gleiche passiert bei einer Datenbankabfrage, nur erwarte ich dann ebenfalls bis zu 10 Variablen die mir eine .php zurückliefert und die ich in der Animation mit Python auswerte.
Ich frage doch nicht die Datenbank 10 mal hintereinander nach Datenbankeinträgen der unterschiedlichsten Spalten ab.
Ich hoffe mich verständlich genug ausdrücken zu können.
Das gleiche passiert bei einer Datenbankabfrage, nur erwarte ich dann ebenfalls bis zu 10 Variablen die mir eine .php zurückliefert und die ich in der Animation mit Python auswerte.
Ich frage doch nicht die Datenbank 10 mal hintereinander nach Datenbankeinträgen der unterschiedlichsten Spalten ab.
Ich hoffe mich verständlich genug ausdrücken zu können.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Die Sache ist die, dass die PHP-Seite *immer* Strings rausgibt. Jede PHP-Seite, egal was sie anzeigt.dieter1a hat geschrieben:Das gleiche passiert bei einer Datenbankabfrage, nur erwarte ich dann ebenfalls bis zu 10 Variablen die mir eine .php zurückliefert und die ich in der Animation mit Python auswerte.
Dieser String wird im meinem Beispiel nun in ``remote_file_contents`` gespeichert und du kannst ihn beispielsweise mit ``print`` anzeigen lassen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- dieter1a
- User
- Beiträge: 75
- Registriert: Montag 26. Februar 2007, 13:08
- Wohnort: Bad Rothenfelde
- Kontaktdaten:
Ja, Leonidas,
ich war so dumm und hatte mir die remote_file anzeigen lassen.
Sorry.
jetzt bekomme ich genau das, was mir die .php liefert.
Nämlich ex{10}ex.
Jetzt kann ich den Inhalt der Variablen $exist durch herausfiltern des String's zwischen {} weiterverarbeiten.
Es klappt hervorragend und ich bedanke mich vielmals für die tolle Hilfe
Mit freundlichen Grüßen
dieter1a
ich war so dumm und hatte mir die remote_file anzeigen lassen.
Sorry.
jetzt bekomme ich genau das, was mir die .php liefert.
Nämlich ex{10}ex.
Jetzt kann ich den Inhalt der Variablen $exist durch herausfiltern des String's zwischen {} weiterverarbeiten.
Es klappt hervorragend und ich bedanke mich vielmals für die tolle Hilfe
Mit freundlichen Grüßen
dieter1a
- dieter1a
- User
- Beiträge: 75
- Registriert: Montag 26. Februar 2007, 13:08
- Wohnort: Bad Rothenfelde
- Kontaktdaten:
Nachdem nun alles eigentlich perfekt funktioniert, hat sich ein neues Problem ergeben.
Weil Blender ja seine eigenen Module mitliefert, brauchte auf dem Rechner auf dem die Animation.exe gestartet wurde, kein Python installiert sein.
Das hat sich seit der Verwendung von urllib und re geändert, was auch nicht weiter tragisch ist.
Jetzt stellt sich mir die Frage, ist es möglich entweder vor dem Download der Animation oder vor dem ersten Start der Animation herauszufinden ob Python installiert ist, um dann gegebenenfalls eine Installation einzuleiten?
Edit:
Kann man eventuell das Importieren von os mit try: except: so abfangen, dass keine Ausgabe im shell-Fenster erscheint wenn os nicht da ist?
Ohne Python-Installation kann ich nämlich aus einer Blender-Animation.exe heraus nicht auf das Modul os zu greifen.
Wird aber auf Grund eines Fehlers eine Konsolenausgabe veranlasst, hängt Python in der Animation, weil es keine Konsole gibt.
Wenn so etwas gehen würde, könnte man damit eine Installation einleiten.
Ich habe aber keinen Plan wie man so etwas hin kriegt.
Weil Blender ja seine eigenen Module mitliefert, brauchte auf dem Rechner auf dem die Animation.exe gestartet wurde, kein Python installiert sein.
Das hat sich seit der Verwendung von urllib und re geändert, was auch nicht weiter tragisch ist.
Jetzt stellt sich mir die Frage, ist es möglich entweder vor dem Download der Animation oder vor dem ersten Start der Animation herauszufinden ob Python installiert ist, um dann gegebenenfalls eine Installation einzuleiten?
Edit:
Kann man eventuell das Importieren von os mit try: except: so abfangen, dass keine Ausgabe im shell-Fenster erscheint wenn os nicht da ist?
Ohne Python-Installation kann ich nämlich aus einer Blender-Animation.exe heraus nicht auf das Modul os zu greifen.
Wird aber auf Grund eines Fehlers eine Konsolenausgabe veranlasst, hängt Python in der Animation, weil es keine Konsole gibt.
Wenn so etwas gehen würde, könnte man damit eine Installation einleiten.
Ich habe aber keinen Plan wie man so etwas hin kriegt.
- dieter1a
- User
- Beiträge: 75
- Registriert: Montag 26. Februar 2007, 13:08
- Wohnort: Bad Rothenfelde
- Kontaktdaten:
Es ging leichter als ich dachte.
Das klappt wunderbar ohne Shell Fensterausgabe.
Gruß
dieter1a
Code: Alles auswählen
try:
import os
except:
tue etwas anderes
Gruß
dieter1a
Du solltest aber immer konkrete Ausnahmen behandeln und nicht einfach *alle*. In diesem Fall interessiert Dich ein `ImportError`:
Code: Alles auswählen
try:
import os
except ImportError:
# tue etwas anderes