Funktionsprüfung
Raspberry Pi2 (raspbian)
MacOS X 10.8.5
Bereiten Sie den folgenden Code vor
hello.py
#!/usr/bin/env python
import time
print "hello"
for x in range(0,60):
print x
time.sleep(1)
Führen Sie wie folgt aus
$ ./hello.py > log.tmp
Gehen Sie in einem anderen Terminal wie folgt vor
$ tail -f log.tmp
Wenn Sie dies tun, scheint die Aktualisierung des Inhalts von log.tmp nach 60 Ausdrucken </ font> zu sein.
Bei Betrachtung mit stdout wird es jede Sekunde angezeigt, bei der Dateiausgabe jedoch nicht jede Sekunde.
Bereiten Sie stattdessen ein Bash-Skript vor
test-exec
#!/usr/bin/env bash
for x in $(seq 1 60)
do
echo $x
sleep 1
done
Wenn Sie dies ausführen, wird die Datei jede Sekunde ausgegeben.
Wie erhält man eine Python-Druckanweisung, um jede Sekunde eine Datei zu drucken?
Möglicherweise kann ein anderer Befehl zum Schreiben von Dateien als Drucken verwendet werden, aber ich muss herausfinden, wie er mit der Umleitung von Dateien kombiniert werden kann.
Es ist bedauerlich, dass selbst wenn die Temperatur und Luftfeuchtigkeit mit DHT11 gemessen werden kann, sie bei der Ausgabe der Datei nicht mit tail -f angezeigt werden können.
http://stackoverflow.com/questions/107705/disable-output-buffering
Es scheint, dass Sie die Option -u angeben können, wenn Sie Python ausführen.
hello.py
#!/usr/bin/env python -u
import time
print "hello"
for x in range(0,60):
print x
time.sleep(1)
Die obige Spezifikation #! / Usr / bin / env python -u
funktionierte unter MacOSX.
Auf der anderen Seite habe ich in Himbeer-Pi2 einen Fehler wie "-u Option fehlt" erhalten.
Ich habe #! / Usr / bin / python -u
gesetzt und es hat funktioniert.
Recommended Posts