2014-02-08 434 views

回答

0

最好的辦法是。

sys.stdout.flush() 

打印後。

例子:

import sys 
sys.stdout.write("hello") 
sys.stdout.flush() 
sys.stdout.write("bye") 

輸出:再見

+0

什麼不'的flush()'做我的聲音像'fflush(標準輸出)'在C.沒有? –

+0

fflush(標準輸出)是c語言。在蟒蛇沖洗 () –

+0

但fflush不clrear屏幕 –

2
import os 
print "hello" 
print "dude" 
if <your condition to bye print > 
    os.system('clear') 
    print "bye" 
1

您可以使用sys.stdout.write避免在每個呼叫和回車\rprint打印的換行符回到行的開始:

import sys 
sys.stdout.write("hello") 
sys.stdout.write("\rdude") 
sys.stdout.write("\rbye") 

要覆蓋前面句子的所有字符,您可能需要添加一些空格。

關於Python 3或Python 2 print作爲一個功能,您可以使用end參數:

from __future__ import print_function #Only python 2.X 
print("hello", end="") 
print("\rdude ", end="") 
print("\rbye ", end="") 

注意,它不會在無功。

2

作爲替代

os.system('clear') 

你也可以使用

print "\n" * 100 

價值100可以更改爲你所需要

4

檢查這個curses library,詛咒庫提供了一個終端獨立的屏幕繪畫和鍵盤處理功能,用於基於文本的終端。舉個例子:

x.py:

from curses import wrapper 
def main(stdscr): 
    stdscr.addstr(1, 0, 'Program is running..') 
    # Clear screen 
    stdscr.clear() # clear above line. 
    stdscr.addstr(1, 0, 'hello') 
    stdscr.addstr(2, 0, 'dude') 
    stdscr.addstr(3, 0, 'Press Key to exit: ') 
    stdscr.refresh() 
    stdscr.getkey() 

wrapper(main) 
print('bye') 

來看,它python x.py

0

Python 3

print("hello", end='\r', flush=True) 
print("dude", end='\r', flush=True) 
print("bye", end='\r', flush=True) 

輸出:

bye