欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中的sys.stdout.write實現(xiàn)打印刷新功能

 更新時間:2020年02月21日 13:31:20   作者:roohom  
今天小編就為大家分享一篇Python中的sys.stdout.write實現(xiàn)打印刷新功能,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

前言:

今天學習python的常用模塊的時候,了解到了time模塊和datetime模塊,于是想在編譯環(huán)境中實時打印出時間,不會換行,且打印的時候自動刪除前一步打印出的時間(本質(zhì)原理不是這樣),而不是像print那樣打印之后自動換行再重新打印。

想要直接看到效果及方法,請直接跳到后文 解決辦法。

我們先來看看Print方法打印的效果:

代碼:

from datetime import datetime as dt
import sys
import time
 
for i in range(5):
  print(dt.now())
  time.sleep(1)

輸出結(jié)果:

C:\Users\Administrator\PycharmProjects\untitled\venv\Scripts\python.exe C:/Users/Administrator/PycharmProjects/untitled/test.py
2018-08-06 16:46:46.636256
2018-08-06 16:46:47.636313
2018-08-06 16:46:48.636370
2018-08-06 16:46:49.636427
2018-08-06 16:46:50.637484
 
Process finished with exit code 0

可以看到,用print打印出來自動換行且不會清除上一個結(jié)果

help一下看看:

help(print)

輸出:

print(...)
  print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
  
  Prints the values to a stream, or to sys.stdout by default.
  Optional keyword arguments:
  file: a file-like object (stream); defaults to the current sys.stdout.
  sep:  string inserted between values, default a space.
  end:  string appended after the last value, default a newline.
  flush: whether to forcibly flush the stream.

可以看到end=“\n”表示了print自帶換行

如果我想要在一行中打印一串信息,并且在下一次執(zhí)行的時候刪除這一行再重新打印(效果類似如此),該如何做呢?嘗試清屏可不可以?

清屏試一試,查閱別的博客的方法有如下代碼:

import os
 
os.system('cls')

但這是在命令行里使用的,用在編譯器里不行。

解決辦法

這時候就要用到sys.stdout.write了

使用如下方法:

from datetime import datetime as dt
import sys
import time
 
 
while True:
  a = dt.now()
  sys.stdout.write("\r{0}".format(a))
  sys.stdout.flush()
  time.sleep(1)
 

以及:

from datetime import datetime as dt
import sys
import time
 
 
for i in range(20):
  a = dt.now()
  sys.stdout.write("\r{0}".format(a))
  sys.stdout.flush()
  sys.stdout.write('\033[4A')
  time.sleep(1)

都可以實現(xiàn)實時打印。

關(guān)鍵就在于使用'\r'這個轉(zhuǎn)義字符(回到行首), sys.stdout.write首先打印這一行后不帶任何結(jié)尾(前文已經(jīng)說過print打印結(jié)尾帶end="\n",表示自帶換行,換行了就不能在對已經(jīng)打印的這一行進行更改編輯),使用了轉(zhuǎn)移字符"\r"使得光標回到行首,再把緩沖區(qū)顯示出來,就得到了我們所需要的效果。

效果輸出:

C:\Users\Administrator\PycharmProjects\untitled\venv\Scripts\python.exe C:/Users/Administrator/PycharmProjects/untitled/test.py
2018-08-06 18:26:21.264878

Run只會顯示這一個,并且一秒鐘更新一次。

這樣就可以利用它來打印進度條。

進度條的特點:

- 有標刻度顯示所占總進度比例

- 有百分比顯示所占比例

代碼示例:

import time,sys
 
for i in range(100):
  percent = i / 100
  sys.stdout.write("\r{0}{1}".format("|"*i , '%.2f%%' % (percent * 100)))
  sys.stdout.flush()
  time.sleep(1)

輸出效果:

|||||||||||||||||||||||||||||||||33.00%

拓展:Python小知識-sys.stdout.write和print進度條打印方式

打印進度條的方法用兩種:

一、sys.stdout.write方式

這個方法中必須使用這句話每次來清理緩存。

sys.stdout.flush()

import sys
import time

i = 0
for i in range(20):
  time.sleep(1)
  sys.stdout.write("\r# Process: %0.1f %%" % (float(i + 1) / float(20) * 100))
  sys.stdout.flush()

二、print方式

其中用print('',end='')來實現(xiàn)sys.stdout.write()

import time
i = 0
for i in range(20):
  time.sleep(1)
  print("\r# Process: %0.1f %%" % (float(i + 1) / float(20) * 100),end="")

結(jié)果如圖1所示:

圖1

三、\r等轉(zhuǎn)義字符操作

轉(zhuǎn)義字符 描述
\ 反斜杠符號
\r 回車
\t 橫向制表符
\n 換行
\' 單引號
\” 雙引號
\oyy 八進制數(shù)yy代表的字符,例如:\o12代表換行
\xyy 十進制數(shù)yy代表的字符,例如:\x0a代表換行
\f 換頁
\b 退格(Backspace)

以上這篇Python中的sys.stdout.write實現(xiàn)打印刷新功能就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中的對象,方法,類,實例,函數(shù)用法分析

    Python中的對象,方法,類,實例,函數(shù)用法分析

    這篇文章主要介紹了Python中的對象,方法,類,實例,函數(shù)用法,從面向?qū)ο蟮慕嵌确治隽藢ο?方法,類,實例,函數(shù)等的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • Python3.5常見內(nèi)置方法參數(shù)用法實例詳解

    Python3.5常見內(nèi)置方法參數(shù)用法實例詳解

    這篇文章主要介紹了Python3.5常見內(nèi)置方法參數(shù)用法,結(jié)合實例形式詳細分析了Python常見的內(nèi)置方法及參數(shù)使用技巧,需要的朋友可以參考下
    2019-04-04
  • 基于tensorflow加載部分層的方法

    基于tensorflow加載部分層的方法

    今天小編就為大家分享一篇基于tensorflow加載部分層的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python3下載抖音視頻的完整代碼

    python3下載抖音視頻的完整代碼

    本文通過實例代碼給大家介紹了python3下載抖音視頻的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • Python+OpenCV數(shù)字圖像處理之ROI區(qū)域的提取

    Python+OpenCV數(shù)字圖像處理之ROI區(qū)域的提取

    ROI區(qū)域又叫感興趣區(qū)域。在機器視覺、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,稱為感興趣區(qū)域,ROI。本文主要為大家介紹如何通過Python+OpenCV提取ROI區(qū)域,需要的朋友可以了解一下
    2021-12-12
  • python調(diào)用pytorch的clip模型時報錯原因及解決方法

    python調(diào)用pytorch的clip模型時報錯原因及解決方法

    這篇文章主要介紹了python調(diào)用pytorch的clip模型時報錯,本文給大家分享問題原因及解決方法,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Python如何通過ARIMA模型進行時間序列分析預(yù)測

    Python如何通過ARIMA模型進行時間序列分析預(yù)測

    這篇文章主要介紹了Python如何通過ARIMA模型進行時間序列分析預(yù)測問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python安裝Numpy出現(xiàn)異常信息簡單解決辦法

    Python安裝Numpy出現(xiàn)異常信息簡單解決辦法

    在安裝Python的Numpy包時,可能會遇到路徑警告或包源超時的問題,首先,如果出現(xiàn)包源超時,可以嘗試更換為國內(nèi)的鏡像源,如清華大學鏡像源,其次,如果在安裝完成后提示將某個路徑添加到PATH環(huán)境變量,按照提示操作即可消除異常,需要的朋友可以參考下
    2024-09-09
  • numpy中的converters和usecols用法詳解

    numpy中的converters和usecols用法詳解

    本文主要介紹了numpy中的converters和usecols用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • Python使用re模塊實現(xiàn)正則表達式操作指南

    Python使用re模塊實現(xiàn)正則表達式操作指南

    在Python中需要通過正則表達式對字符串進?匹配的時候,可以使??個python自帶的模塊,名字為re,下面這篇文章主要給大家介紹了關(guān)于Python使用re模塊實現(xiàn)正則表達式操作的相關(guān)資料,需要的朋友可以參考下
    2022-07-07

最新評論