Für mich ist Python neu und ich tue mich gerade ein bisschen schwer damit. Im Prinzip habe ich vier Variablen, die ich gerne sequentiell in eine Datei schreiben möchte, so dass ich sie mit einem anderen Programm zur weiteren Verarbeitung übernehmen kann. Die einzige Bedingung ist, dass die Daten problemlos und möglichst einfach von einem C-Programm übernommen werden können. Wenn es nicht anders geht, wäre auch eine Ausgabe in Form von JSON ok.
Leider habe ich keine Ahnung, wie ich meine Daten in die Datei schreiben kann (siehe auskommentierte f.write() Operationen unten im Code).
Es geht um folgende Variablen:
file_mark: 1 Byte Code (z.B. ASCII "c" zur Markierung der Datei. Sollte in der Datei im ersten Byte liegen.
base: Float mit einem Wert, der vom Anwender mitgeliefert werden muss (wird später über UI abgefragt).
factor: Integer der anhand der Daten errechnet wird und vom Benutzer im UI angepasst werden kann.
m: zweidimensionale Liste mit 256 x 256 Messwerten die zwischen 0.0 und 256.0 liegen.
# arrays.py - Test Script zur Datenaufbereitung in Listen und Bereitstellung der .ter Files.
# Fiktive Scanner-Funktion für Testzwecke ohne reale Messwerte.
def scan(x, y):
return (x*y) + 0.5
# Hauptprogramm - Entry Point der Anwendung
def main(args=None):
# 1-Byte Integer um die Datei als .ter File zu markieren.
# Darf auch ein Byte mit einem beliebig anderen definierten Wert zwischen 1 und 254 inklusive sein.
file_mark = 'c'
# Basis mit der die Daten aufgezeichnet wurden. Wird in der realen Anwendung über das UI eingegeben.
base = 21.0
# Kompressionsfaktor, wird anhand der erfassten Daten berechet, kann bei Bedarf angepasst werden.
# Je kleiner der Wert desto grösser die Präzision, je grösser der Wert desto höher die Kompression.
# Aktuell mögliche Werte sind 64 (default), 32 und 16.
factor = 64
# Zweidimensionale Liste von 256 x 256 Floats mit den Messwerten
m = [[0.0 for x in range(256)] for y in range(256)]
# Matrix mit Daten füllen (Scannen)
for y in range(256):
for x in range(256):
m[x][y] = scan(x+1, y+1)
# Matrix zu Testzwecken an der Konsole ausgeben
for y in range(256):
for x in range(256):
print(x+1, y+1, m[x][ y])
# Ausgabe der Daten in demo.ter File.
# Als binary mit "wb"? Geht nicht! Als string mit "w"? Geht nur für String!
# Anderweitig? Auch o.k., aber wie? Auch JSON wäre ok! (nur unschön wegen der Datenmenge)
f = open("demo.ter", "wb")
# Ich habe keine Ahnung wie ich die Daten hier in die Datei ausgebe.
'''
f.write(file_mark)
f.write(base)
f.write(m)
'''
f.close()
# Nur ausführen, wenn als Script ausgeführt
if __name__ == "__main__":
main()
Display More
Irgendwie scheinen alle Tutorials und Beispiele dort aufzuhören, wo ich anfange
LG
Peter