Python unbuffered output
Par pepin le mercredi, juillet 29 2020, 14:09 - Python - Lien permanent
Il est parfois nécessaire d'avoir une sortie non bufferisée, si nous voulons des output temps réél par exemple.
Pour cela, on peut utiliser une classe qui permettra d'obtenir un objet surchargé :
#!/usr/bin/env python3 import sys, os class Unbuffered(object): def __init__(self, stream): self.stream = stream def write(self, data): self.stream.write(data) self.stream.flush() def writelines(self, datas): self.stream.writelines(datas) self.stream.flush() def __getattr__(self, attr): return getattr(self.stream, attr) sys.stdout = Unbuffered(sys.stdout)