2012-05-03 69 views

回答

0

製作屬於自己的文件,即定義write()並替換sys.stdout

import sys 

class forewrap(object): 
    def __init__(self, origfile, cseq='|'): 
    self.file = origfile 
    self.cseq = cseq 
    self.seen = False 

    def write(self, txt): 
    if not (self.seen and txt == '\n'): 
     self.seen = True 
     self.file.write(self.cseq) 
    else: 
     self.seen = False 
    self.file.write(txt) 

print 'foo' 
sys.stdout = forewrap(sys.stdout) 
print 'foo' 
print 
print 'bar' 
1

使用Python 3?更換print

_realprint = print 
def print(*args, **kwargs): 
    _realprint('|', end='') 
    _realprint(*args, **kwargs) 
print.__doc__ = _realprint.__doc__ 

現在,通過print輸出都將通過加前綴 '|'。在您的_realprint()調用中替換\n\n|的額外功勞,記住end的調用等於\n等之外的值,但這應該會讓您通過99%的例子。

+0

是否可以指定將應用的特定行。我希望大多數行都包含前綴,但有些不行。 – user1371529

+1

你可以,但是你將不得不寫** **來指定它......並且需要「寫一些東西」來直接指定輸出「'|'」的努力量是如此之小我會直接這樣做。 –