Python コードのすべての行の先頭に文字を出力したいと考えています。特に、「|」を印刷したい すべての出力行の先頭まで。Pythonでこれを達成する最良の方法は何ですか?
質問する
129 次
2 に答える
1
Python 3 を使用していますか? 置換print
:
_realprint = print
def print(*args, **kwargs):
_realprint('|', end='')
_realprint(*args, **kwargs)
print.__doc__ = _realprint.__doc__
これで、すべての出力print
の前に「|」が付きます。\n
呼び出しでwith\n|
を置き換えるための追加のクレジット、以外の何か_realprint()
で呼び出されたときの記憶など。ただし、これで 99% のケースを解決できるはずです。end
\n
于 2012-05-03T04:19:47.637 に答える
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'
于 2012-05-03T04:13:50.017 に答える