我知道这可能是一个新手错误,我应该受到普遍批评,但我希望有人有解决方法。
我正在尝试开发这个程序来编辑大量非常大的文本文件。每当我以交互方式处理代码时,我经常会搞砸某些部分并意外打印整个 dang 文件。我知道如何通过切片或其他方式来避免这种情况,但每次我犯错时都会导致 IDLE 崩溃。
我想外面有人可能对此有破解之法。当然,答案很可能只是在终端/emacs/eclipse中做,dummy。
有没有人有解决方案,或者这只是人们忍受的东西?
我知道这可能是一个新手错误,我应该受到普遍批评,但我希望有人有解决方法。
我正在尝试开发这个程序来编辑大量非常大的文本文件。每当我以交互方式处理代码时,我经常会搞砸某些部分并意外打印整个 dang 文件。我知道如何通过切片或其他方式来避免这种情况,但每次我犯错时都会导致 IDLE 崩溃。
我想外面有人可能对此有破解之法。当然,答案很可能只是在终端/emacs/eclipse中做,dummy。
有没有人有解决方案,或者这只是人们忍受的东西?
您可以尝试替换sys.stdout
以限制产生的输出:
# override.py
import sys
class LimitedWriter:
def __init__(self, limit):
self.limit = limit
self.old_stdout = sys.stdout
self.active = True
def toggle(self, flag):
self.active = flag
def write(self, value):
if len(value) > self.limit and self.active:
value = value[:self.limit] + "..."
self.old_stdout.write(value)
__lw__ = LimitedWriter(15) # limit to 15 characters
sys.stdout = __lw__
然后在每个会话中加载它:
>>> import override
>>> print "(o.o)" * 10
(o.o)(o.o)(o.o)...
>>>
>>> import sys
>>> sys.stdout.toggle(False)
>>> print "(o.o)" * 10
(o.o)(o.o)(o.o)(o.o)(o.o)(o.o)(o.o)(o.o)(o.o)(o.o)