我希望在python代码的每一行的开头打印一个字符。特别是,我想打印一个“|”到每个输出线的开头。在python中实现这一目标的最佳方法是什么?
答案 0 :(得分:1)
使用Python 3?替换print
:
_realprint = print
def print(*args, **kwargs):
_realprint('|', end='')
_realprint(*args, **kwargs)
print.__doc__ = _realprint.__doc__
现在print
输出的所有内容都将以“|”为前缀。在\n
来电中使用\n|
替换_realprint()
的额外赠送金额,记住在end
调用等于除\n
以外的其他内容时等等。这应该可以帮助您但是,通过99%的案例。
答案 1 :(得分: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'