python可以直接打印中午吗_Python print不能立即打印的解决方式
1、問題描述
在Python中使用print打印hello world時,終端不顯示
1
2def hello():
print("hello world!")
2、原因
因為標準輸入輸出stdin/stdout有緩沖區,所以使用print不能立即打印出來,作為剛接觸Python的菜鳥,迷瞪了半天
3、解決方法
1)刷新緩沖區,python中是sys.stdout.flush()
1
2
3
4import sys
def hello():
print("hello world!")
sys.stdout.flush()
2)python3中支持print支持參數flush
原型:print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
1
2def hello():
print("hello world!", flush=True)
參考官方手冊
Python控制臺輸出時刷新當前行內容而不是輸出新行的實現
需求目標
執行Python程序的時候在控制臺輸出內容的時候只顯示一行,然后自動刷新內容,像這樣:Downloading File FooFile.txt [47%]
而不是這樣:
1
2
3DownloadingFile FooFile.txt [47%]
DownloadingFile FooFile.txt [48%]
DownloadingFile FooFile.txt [49%]
實現環境
Python 3.x
實現代碼
1
2
3
4import time
for iin range(10):
time.sleep(0.2)
print ("\r Loading... ".format(i)+str(i), end="")
這里主要用到了Python 3.x里面print函數增加的功能,使用\r可以刷新當前行輸出,2.x里面沒有測試,理論上不可以這樣操作
拓展知識:
python 覆蓋輸出/單行輸出方式
有時候看輸出進度時,會分別輸出進度,也就是輸出一長串數字,如果能夠覆蓋之前的輸出視覺效果會更好。
1
2
3
4
5
6
7
8
9import sys
import time
for iin range(1000):
percent= 1.0 * i/ 1000 * 100
sys.stdout.write("\r nihao: %d / %d" %(percent,100))
sys.stdout.flush()
time.sleep(0.1)
總結
以上是生活随笔為你收集整理的python可以直接打印中午吗_Python print不能立即打印的解决方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux windows文件 编码_L
- 下一篇: 微机原理换行代码_微机原理实验保留最长行