Hallo,
Ich habe ein kleines Problem und zwar : ich soll einen Lagesensor programmieren und die Messdaten auf eine Datei schreiben. Soweit so gut ich habe den Sensor in Betrieb genommen und auch meinen Code soweit, dass er eine Datei erstellt etc.
Nun meine Frage : mit file.write() schreib ich normal meine Sachen in die Datei. Allerdings muss ich sie davor zu einem String formatieren. Ist es Laufzeit technisch egal ob ich das mache? Und wenn ich die Datei weiter verarbeiten will muss ich jedes Element aus den Listen wieder zurück konvertieren oder? Gibt es zum Schreiben von Listen in eine Datei eine Möglichkeit, die Floats die darin stehen in ihrem Typ zu lassen?
Danke schonmal im Voraus für die Hilfe
Listen auf Datei schreiben
Ohne JSON ist es ein bisschen umständlicher:
Code: Alles auswählen
#!/usr/bin/python3
# write data
with open("daten.txt", "w") as f:
f.write("%f %f %f" % (1.00, 2.00, 3.00))
# read data
with open("daten.txt", "r") as f:
data = f.read()
x, y, z = data.split(" ")
x = float(x)
y = float(y)
z = float(z)
print(x, y, z)
@heiner88: wobei Du damit nicht den Typ mit in der Datei speicherst, sondern wissen muß, dass es sich um Zahlen handel.
Beim Schreiben und Lesen von Text-Dateien immer ein encoding angeben, die default-Werte sind in Python3 leider systemabhängig.
Mit `map` vereinfacht sich das noch:
Beim Schreiben und Lesen von Text-Dateien immer ein encoding angeben, die default-Werte sind in Python3 leider systemabhängig.
Mit `map` vereinfacht sich das noch:
Code: Alles auswählen
with open("daten.txt", encoding="ASCII") as f:
x, y, z = map(float, f.read().split())