我希望在 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
为,记住何时使用等于 以外的其他内容等进行呼叫。不过,这应该可以让您通过 99% 的案例。\n|
_realprint()
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 回答