在Python中打印一个字符以开始每一行

时间:2012-05-03 04:09:46

标签: python

我希望在python代码的每一行的开头打印一个字符。特别是,我想打印一个“|”到每个输出线的开头。在python中实现这一目标的最佳方法是什么?

2 个答案:

答案 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'