python> print> Est-il redirigé uniquement à la fin du processus?> Exécuter avec -u

Contrôle de fonctionnement


Raspberry Pi2 (raspbian)
MacOS X 10.8.5

Sortie en python

Préparez le code suivant

hello.py


#!/usr/bin/env python
import time

print "hello"

for x in range(0,60):
	print x
	time.sleep(1)

Exécutez comme suit

$ ./hello.py > log.tmp

Effectuez les opérations suivantes dans un autre terminal

$ tail -f log.tmp

En faisant ce qui précède, il semble que le contenu de log.tmp soit mis à jour après 60 impressions </ font>.

Lorsqu'il est visualisé avec stdout, il est affiché toutes les secondes, mais dans le cas de la sortie de fichier, il n'est pas sorti toutes les secondes.

Sortie en bash

Préparez plutôt un script bash

test-exec


#!/usr/bin/env bash

for x in $(seq 1 60)
do
  echo $x
  sleep 1
done

Si vous exécutez cela, le fichier sera sorti toutes les secondes.

Question

Comment obtenir une instruction d'impression python pour imprimer un fichier toutes les secondes?

Il peut être possible d'utiliser une commande d'écriture de fichier autre que print, mais je dois savoir comment la combiner avec la redirection de fichier.

Il est regrettable que même si la température et l'humidité peuvent être mesurées avec DHT11, cela ne peut pas être vu avec tail -f lors de la sortie du fichier.

Solution

http://stackoverflow.com/questions/107705/disable-output-buffering

Il semble que vous puissiez spécifier l'option -u lors de l'exécution de python.

hello.py


#!/usr/bin/env python -u
import time

print "hello"

for x in range(0,60):
	print x
	time.sleep(1)

La spécification ci-dessus #! / Usr / bin / env python -u fonctionnait sur MacOSX. D'un autre côté, dans raspberry Pi2, j'ai eu une erreur du type -u option is missing. Cela a fonctionné lorsque j'ai défini #! / Usr / bin / python -u.

Recommended Posts

python> print> Est-il redirigé uniquement à la fin du processus?> Exécuter avec -u
Cours de base Python (à la fin de 15)
Envoyer Gmail à la fin du processus [Python]
Essayez de ne faire réagir que le carbone en bout de chaîne avec SMARTS
Supprimer une chaîne spécifique à la fin de python
Exécutez l'intelligence de votre propre bibliothèque python avec VScode.
Bases du traitement d'images binarisées par Python
Vérifier l'existence du fichier avec python
Dessin avec Matrix-Reinventor of Python Image Processing-
L'histoire du traitement A du blackjack (python)
Recevez une liste des résultats du traitement parallèle en Python avec starmap
Automatisation de la création du tableau des heures de travail en fin de mois avec Selenium
Préparer l'environnement d'exécution de Python3 avec Docker
Mathématiques Todai 2016 résolues avec Python
[Note] Exportez le html du site avec python.
Afficher le résultat du traitement de la géométrie en Python
Calculez le nombre total de combinaisons avec python
Informer périodiquement l'état de traitement de Raspberry Pi avec python → Google Spreadsheet → LINE
Traitement d'image? L'histoire du démarrage de Python pour
Ceci est le seul examen de base de Python ~ 1 ~
Ceci est le seul examen de base de Python ~ 2 ~
Ceci est le seul examen de base de Python ~ 3 ~
Au moment de la mise à jour de python avec ubuntu
Convertir le code de caractère du fichier avec Python3
[Python] Déterminez le type d'iris avec SVM
J'ai essayé de comparer la vitesse de traitement avec dplyr de R et pandas de Python
Extraire le tableau des fichiers image avec OneDrive et Python
Coordonnées les plus à droite de l'étiquette faite avec tkinter
Apprenez Nim avec Python (dès le début de l'année).
Exécutez avec CentOS7 + Apache2.4 + Python3.6 pour le moment
Jetez un œil au traitement de LightGBM Tuner
Détruire l'expression intermédiaire de la méthode sweep avec Python
[Chapitre 5] Introduction à Python avec 100 coups de traitement du langage
Visualisez la gamme d'insertions internes et externes avec python
Calculer le coefficient de régression d'une analyse de régression simple avec python
Examiner le traitement de fermeture de l'ensemble de données Python (wrapper SQLAlchemy)
[Chapitre 3] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 2] Introduction à Python avec 100 coups de traitement du langage
Résumé du flux de base de l'apprentissage automatique avec Python
Tâches au démarrage d'un nouveau projet python
Obtenez l'état de fonctionnement de JR West avec Python
[Chapitre 4] Introduction à Python avec 100 coups de traitement du langage
Exécutez Python avec VBA
Exécutez prepDE.py avec python3
le zen de Python
Traitement d'image avec Python
Divers traitements de Python
Exécutez iperf avec python
Comment insérer un processus spécifique au début et à la fin de l'araignée avec la tremblante
J'ai essayé de trouver l'entropie de l'image avec python
Essayez de gratter les données COVID-19 Tokyo avec Python
J'ai essayé la "correction gamma" de l'image avec Python + OpenCV
L'histoire de la mise en œuvre du sujet Facebook Messenger Bot avec python
Unifier l'environnement de l'équipe de développement Python en commençant par Poetry
Obtenez UNIXTIME au début d'aujourd'hui avec une commande
Calculez des millions de chiffres dans la racine carrée de 2 avec python
J'ai écrit la grammaire de base de Python dans Jupyter Lab