I "essaie de faire une simple barre de progression de texte dans les fenêtres console et affiche également des caractères UTF8.Purger l'écran de la console avec contournement de classe unicode spéciale pour les fenêtres console
Le problème est pas que les caractères unicode gagné » Comment puis-je obtenir cette information? Flush() funcionality de retour dans la console et toujours utiliser cette classe Unicode?
#coding=<utf8>
import sys, os
#make windows console unicode friendly
if sys.platform == "win32":
os.popen('chcp 65001')
class UniStream(object):
__slots__= "fileno", "softspace",
def __init__(self, fileobject):
self.fileno= fileobject.fileno()
self.softspace= False
def write(self, text):
if isinstance(text, unicode):
os.write(self.fileno, text.encode("utf_8"))
else:
os.write(self.fileno, text)
def flush(self):
self.flush()
sys.stdout = UniStream(sys.stdout)
sys.stderr = UniStream(sys.stderr)
def progress(num):
sys.stdout.write("\r"+str(num)+"% τοις εκατό...")
sys.stdout.flush()
for i in xrange(2000):
progress(i)
x = raw_input('done')
Vous êtes génial! Merci. Travaillez, à merveille. De votre code, il semble que la partie importante est où vous itérez char (8) pour chaque caractère dans le texte de mise à jour de progrès avant chaque appel pour écrire une mise à jour sur le texte de progression. – russo
Plus tard, j'ai pris conscience qu'il est probablement préférable d'ajouter sys.stdout.flush() à ce type de code. –