-1
我希望打印一個字符到Python代碼中的每一行的開頭。特別是,我想打印一個「|」到每個輸出行的開始。在python中實現這個最好的方法是什麼?打印一個字符到Python中的每一行的開頭
我希望打印一個字符到Python代碼中的每一行的開頭。特別是,我想打印一個「|」到每個輸出行的開始。在python中實現這個最好的方法是什麼?打印一個字符到Python中的每一行的開頭
製作屬於自己的文件,即定義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'
使用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%的例子。
是否可以指定將應用的特定行。我希望大多數行都包含前綴,但有些不行。 – user1371529
你可以,但是你將不得不寫** **來指定它......並且需要「寫一些東西」來直接指定輸出「'|'」的努力量是如此之小我會直接這樣做。 –