關(guān)于sys.stdout和print的區(qū)別詳解
一、sys.stdout的形式就是print的一種默認(rèn)輸出格式,等于print "%VALUE%"
print函數(shù)是對sys.stdout的高級封裝,看下print函數(shù)的解釋
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.
print是默認(rèn)調(diào)用了sys.stdout.write()方法將輸出打印到控制臺
print 也可通過file參數(shù)將輸出打印到其他文件中
f = open('test.txt','a') print('this is a test',file=f)
二、sys.stdout.write()輸出不會自動換行,沒有end,可用轉(zhuǎn)義字符自行控制
/n 換行
/r 回車到本行首,可刷新輸出
如用sys.stdout.write() 和\r實現(xiàn)自定義進(jìn)度條
# -*- coding: utf-8 -*- from tqdm import tqdm import time import sys for i in tqdm(range(100)): time.sleep(.1) for i in range(100): a = (i+1)/5 b = 20-a #sys.stdout.write('\r>>convert image %d/%d'%(i,b)) sys.stdout.write('\r|%s%s|%d%%'%(a*'▇',b*' ',i+1)) sys.stdout.flush() time.sleep(.1)
運行結(jié)果如下圖:
sys.stdout.flush()強(qiáng)制刷新緩沖區(qū),
緩沖區(qū)的刷新方式:
1.flush()刷新緩存區(qū)
2.緩沖區(qū)滿時,自動刷新
3.文件關(guān)閉或者是程序結(jié)束自動刷新。
當(dāng)我們需要打印一些字符時,并不是立刻就打印,而是先將需要打印的字符放入緩沖區(qū),在緩沖區(qū)刷新時打印,當(dāng)緩沖區(qū)未滿,或者程序運行未結(jié)束時,可使用sys.stdout.flush()強(qiáng)制刷新緩沖區(qū),立刻進(jìn)行打?。?/p>
附:寫出漂亮的進(jìn)度條模塊tqdm
from tqdm import tqdm import time for i in tqdm(range(10000)): time.sleep(0.01)
運行結(jié)果如下:
以上這篇關(guān)于sys.stdout和print的區(qū)別詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
教你利用PyTorch實現(xiàn)sin函數(shù)模擬
這篇文章主要給大家介紹了關(guān)于教你利用PyTorch實現(xiàn)sin函數(shù)模擬的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-01-01python實現(xiàn)批量獲取指定文件夾下的所有文件的廠商信息
這篇文章主要介紹了python實現(xiàn)批量獲取指定文件夾下的所有文件的廠商信息的方法,是非常實用的技巧,涉及到文件的讀寫與字典的操作等技巧,需要的朋友可以參考下2014-09-09python應(yīng)用之如何使用Python發(fā)送通知到微信
現(xiàn)在通過發(fā)微信信息來做消息通知和告警已經(jīng)很普遍了,下面這篇文章主要給大家介紹了關(guān)于python應(yīng)用之如何使用Python發(fā)送通知到微信的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03提升Python Scrapy庫數(shù)據(jù)采集速度實現(xiàn)高效爬蟲
Scrapy是一個強(qiáng)大而靈活的Python爬蟲框架,被廣泛用于數(shù)據(jù)采集、網(wǎng)站抓取和網(wǎng)絡(luò)爬蟲開發(fā),本文將深入介紹Scrapy的功能和用法,并提供豐富的示例代碼,幫助更好地理解和應(yīng)用2023-11-11python3.7.2 tkinter entry框限定輸入數(shù)字的操作
這篇文章主要介紹了python3.7.2 tkinter entry框限定輸入數(shù)字的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05