2017-02-10 149 views
0

我想使用Python在標準輸出上打印特定行。使用Python打印到標準輸出上的特定行

說..我有一個循環內循環。目前,它打印此:

a0,b0,c0,a1,b1,c1,a2,b2,c2, 

但實際上,我希望它打印:

a0,a1,a2, 
b0,b1,b2, 
c0,c1,c2, 

的代碼看起來是這樣的

進口SYS

ar = ['a', 'b', 'c'] 
for i in ar: 
    c = 1 
    while c < 4: 
     sys.stdout.write('%s%s,' % (i, c)) 
     c += 1 

是否有識別線路的方法?例如打印到X行?

或者 - 我可以寫3行到標準輸出(使用'\ n'),然後返回並覆蓋第1行?

注意:我不只是想達到上述目的!我能做到這一點通過改變環路 - 問題是關於識別標準輸出的不同行,如果可能的

感謝

+1

[傳遞\ n在stdout throught SYS參數(新的線)](的可能的複製http://stackoverflow.com/questions/5715414/passing-n-new -line-on-stdout-throught-sys-argument) – doctorlove

+0

@doctorlove爲什麼?它看起來不是把它作爲一個參數傳遞....或者我錯過了什麼?他只是使用sys的'sys.stdout.write' .... – fedepad

+0

@doctorlove我知道關於新行感謝,它工作正常,當我使用它:)這是關於寫行'X'不只是下一行( '\ n') –

回答

0

爲@hop建議,寫信給他們,在blessings庫會爲這個偉大的。

例如

from blessings import Terminal 

term = Terminal() 
with term.location(0, term.height - 1): 
    print 'Here is the bottom.' 

,並在我的例子,沿下方作品東西線。它提供了我正在尋找的輸出。

from blessings import Terminal 

term = Terminal() 

print '.' 
print '.' 
print '.' 


ar = ['a', 'b', 'c'] 
x = 1 
for i in ar: 
    c = 1 
    while c < 4: 
     with term.location(c*3-3, term.height - (5-x)): 
      print str(i)+str(c-1)+',' 
     c += 1 
    x += 1 

給出:

a0,a1,a2, 
b0,b1,b2, 
c0,c1,c2, 
相關問題