Wie kann ich einen string per python script in ein HTML-Dokument einfügen?

Ich habe ein Python3-Script zum auslesen eines Wertes am GPIO von meinem Raspberry Pi. Ausserdem habe ich einen Apache2 Server laufen.

Nun möchte ich, dass das Script in Python seinen Wert in dieses HTML-Dokument einfügt.

Wie bekomme ich das hin? (Python-noob)

Python-Script:

     #!/usr/bin/python                            # -*- coding: utf-8 -*-                                                        from ABE_ADCPi import ADCPi                            from ABE_helpers import ABEHelpers                            import time                            import os                                                        """                            ================================================                            ABElectronics ADC Pi TMP36 temperature sensor demo                            Version 1.0 Created 20/05/2015                                                        Requires python smbus to be installed                            run with: python demo-tmp36.py                            ================================================                                                        Initialise the ADC device using the default addresses and sample rate,                            change this value if you have changed the address selection jumpers                                                        Sample rate can be 12,14, 16 or 18                            """                                                        i2c_helper = ABEHelpers()                            bus = i2c_helper.get_smbus()                            adc = ADCPi(bus, 0x68, 0x69, 18)                                                                                                                def calcTemperature(inval):                                # TMP36 returns 0.01 volts per C - -40C to +125C                                # 750mV = 25C and 500mV = 0C so the temperature is (voltage / 0.01) - 50                                                            return ((inval/0.01)-50)                                                        while (True):                                                            # clear the console                                os.system('clear')                                                            # read from adc channels and print to screen

#!!!!! Das was hier als Print ausgegeben wird, soll exportiert werden
print ("Temperature on channel 1: %0.02f°C" % calcTemperature(adc.read_voltage(1)))
# wait 0.5 seconds before reading the pins again time.sleep(0.5)

html dokument:

<!DOCTYPE html>
 
<html lang="de">
<head>
  <title>Messwert</title>
</head>
 
<body>
 
<p>Hier soll der Messwert rein</p>
 
</body>
</html>
...zum Beitrag

Oberhalb der while Schleife muss dein vorgegebenes Template eingelesen werden:

f = open('deine_html_template_heisst.html')
template = f.read()
f.close()

In der Whileschleife nach dem print kann die Ausgabe durch schreiben in eine Datei erfolgen. Auf diese sollte dann der Webserver zugriff haben können. Die Ausgabedatei ist nicht das Template... Ansonsten würdest Du das Template überschreiben und das wäre doof.

ausgabe_datei = open('ausgabedatei.html')
ausgabe_datei.write(
   template.replace(
      'Hier soll der Messwert rein',
      "Temperature on channel 1: %0.02f°C" % calcTemperature(adc.read_voltage(1) ) )
ausgabe_datei.close()

Viel einfacher geht es nicht. Generell ist dein Lösungsansatz allerdings ziemlich schlecht. Du ließt im 0,5 Sekundentakt den Wert aus und würdest dann die Datei schreiben. Eigentlich wäre es viel besser, wenn Du einen kleinen Python Webserver schreibst, der nix weiter macht als bei einem Aufruf der Webadresse erst dann den Wert zu liefern..

Z.B.:

from http.server import HTTPServer
from http.server import BaseHTTPRequestHandler
class MesswertRequestHandler(BaseHTTPRequestHandler):
template = open('deine_html_template_heisst.html').read()

def do_GET(self):
messwert = 'hier deinen Messwert laden'
self.send_response(200)
self.end_headers()
self.wfile.write(self.template.replace('Hier soll der Messwert rein', messwert))
def run(server_class=HTTPServer, handler_class=MesswertRequestHandler):
server_address = ('', 8000)
httpd = server_class(server_address, handler_class)
httpd.serve_forever()

if __name__ == '__main__':
run()
...zur Antwort

Es klingt so, als ob die für jede Spielpaarung eine eigene Variable angelegt hast. spiel_1 spiel_2 spiel_3 und so weiter. Das ist keine so gute Idee. Eigentlich hättest Du spiel_1 ... in einem Dictionary ablegen sollen:

Schau mal (das soll jetzt nur zeigen wie die Dicts funktionieren):

paarungen={}
for i in range(1,10):
   paarungen['spiel_%d' % i] = 'wasauchimmer %d' % i}
print paarungen
print paarungen['spiel_1']

Aber vermutlich willst du fertig werden mit deinem Programm. Du kannst auch auf Variablen zugreifen:

import sys
i = 5 (deine paarungsnummer/spielnummer)
inhalt_der_variable = getattr(sys.modules[__name__],'spiel_%d' % i)

Diese Lösung funktioniert, allerdings würde ich Dir als Lehrer dafür Punkte abziehen. Das ist sowas von schmutzig... Puh...

Viel Glück.

...zur Antwort

# Zahlen einlesen und in Liste splitten

a = raw_input().split()

# Auf alle Elemente der Liste die Funktion float anwenden

b = map(float,a)

# Größte Zahl ausgeben

print max(b)

...zur Antwort

Du kannst Milchprodukte in Zusammenhang mit Clindamycin zu Dir nehmen, da der Beipackzettel diese Information definitiv enthalten würde. Unter http://www.pfizer.de/fileadmin/pfizer.de/documents/gi/SobelinHartkapseln\_300\_GI.pdf findest Du den Beipackzettel von Sobelin, dem Originalprodukt, dass Clindamycin enthält. Wenn Du das PDF nach Milch durchsuchst, wirst du keinen Hinweis zum Verzicht finden.

...zur Antwort