-1

Python コードのすべての行の先頭に文字を出力したいと考えています。特に、「|」を印刷したい すべての出力行の先頭まで。Pythonでこれを達成する最良の方法は何ですか?

4

2 に答える 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 に答える