[terminal]關於進度條的學習
阿新 • • 發佈:2017-10-27
try 關於 context 源碼 研究 ive att .get ansi
在PowerShell中隱藏光標
在pip的源碼C:\Python36\Lib\site-packages\pip\utils\ui.py中發現了:
1 @contextlib.contextmanager 2 def hidden_cursor(file): 3 # The Windows terminal does not support the hide/show cursor ANSI codes, 4 # even via colorama. So don‘t even try. 5 if WINDOWS: 6 yield 7 #We don‘t want to clutter the output with control characters if we‘re 8 # writing to a file, or if the user is running with --quiet. 9 # See https://github.com/pypa/pip/issues/3418 10 elif not file.isatty() or logger.getEffectiveLevel() > logging.INFO: 11 yield 12 else: 13 file.write(HIDE_CURSOR)14 try: 15 yield 16 finally: 17 file.write(SHOW_CURSOR)
本來都打算放棄了, 第二天在windows上PowerShell中一試居然可以
具體HIDE_CURSOR的代碼在C:\Python36\Lib\site-packages\pip\_vendor\progress\helpers.py文件中
1 HIDE_CURSOR = ‘\x1b[?25l‘ 2 SHOW_CURSOR = ‘\x1b[?25h‘
跟進度條的鬥爭, 從sys.stdout.write()和sys.stdout.flush(), 到progressbar2, 再到tqdm, 再到之後因為tqdm在jupyter notebook中好看, 於是折騰anaconda, 最終試著研究tqdm源碼, 發現ascii參數, 再到研究pip源碼,著實學到不少, 不過像本少這種門外少年, 還是需要時間慢慢來, 才能接受看源碼的設定. 苦笑...
最後附上個人定制進度...稱不上條了....
[terminal]關於進度條的學習