Zijn er hier mensen die ervaring hebben met het verwerken van data in Python?

Ik heb dus een mooi Python-script wat via ZeroMQ een datastroom binnenhaalt (treinposities), en dat werkt perfect, en ik krijg om de tien seconden een mooie XML-feed binnen in het text-bestand. Maar dat moet ook zonder het schrijven van een bestand kunnen.

Op het huidige moment wordt constant de data in de ZeroMQ-datastroom weggeschreven naar een bestand.
Nu wil ik dit realtime kunnen outputten op een webservertje, en ik dacht zelf aan de PyBottle-plugin om een mini-webserver op te zetten.

Echter... hoe krijg ik de XML-feed van het huidige moment daarin te zien?

Hopelijk zijn er hier mensen die Python-kennis hebben, en snappen wat ik bedoel. Of als iemand het beter zou kunnen dan dit, let me know.

#!/usr/bin/env python2
from gzip import GzipFile
from cStringIO import StringIO
from subprocess import call
import zmq

context = zmq.Context()

subscriber = context.socket(zmq.XSUB)
subscriber.connect("tcp://pubsub.*******.nl:7664")
subscriber.send(chr(0x01) + "/RIG/NStreinpositiesInterface5") # 0x01 = subscribe, 0x00 = unsubscribe


x=0

while True:

        multipart = subscriber.recv_multipart()
        address = multipart[0]
        contents = ''.join(multipart[1:])
        contents = GzipFile('','r',0,StringIO(contents)).read()
        filename="tmp/treinpos.txt"
        file = open(filename,"w")
        file.write(contents)
        file.close()

subscriber.close()
context.term()
Ik ga er zeker naar kijken!

[size=xsmall]Toevoeging op 29/11/2017 08:29:55:[/size]

Soms is het gemakkelijker om het roer om te gooien. Met NodeJS heb je al een webserver ineen, en met een paar extra modules kan je al een ZMQ-socket uitlezen.

Dat is dus de nieuwe inslag die ik gemaakt heb. En tot nu toe werkt die best lekker.
Het is dan geen PHP, maar toch een programmeertaal waar ik mij prettiger bij voel. ;)

Nu nog even uitzoeken hoe gzip ermee om gaat.

Reageren