2012-05-03 13 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により、すべての出力が前置されます。 \n\n|と置き換えてend\nなどと呼んだときに覚えている_realprint()のコールでは、余分なクレジットがあります。

+0

これが適用される特定の行を指定することは可能ですか?私は大多数の行にプレフィックスを含めたいが、いくつかは含めるべきではない。 – user1371529

+1

あなたは可能かもしれませんが、あなたはそれを指定するために何か**を書かなければなりません....そして、 '' | ''を直接出力することを指定するために"何かを書く "ために必要な努力の量はとても小さい私はちょうどそれを直接行うだろう。 –

関連する問題