IDLEが巨大なリストを印刷しないようにするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/609190

質問

たとえば、IDLEの何千ものアイテムのリストを操作して、誤ってシェルに出力することがあります。これが発生すると、クラッシュするか、少なくともIDLEの速度が大幅に低下します。ご想像のとおり、これは非常に不便です。 全体を印刷するのではなく、それを作成する方法はありますか、要約された[1、2、...]出力を私に与えてください。 どんな助けでも大歓迎です。

役に立ちましたか?

解決

上記のように、次のようなカスタム印刷機能を試してください:

def my_print(obj):  
    if hasattr(obj, '__len__') and len(obj) > 100:  
        print '... omitted object of %s with length %d ...' % (type(obj), len(obj))  
    else: print obj

他のヒント

代わりにシェルとして IPython を使用します。

カスタム印刷機能を使用できます。

Python 3では、printは関数であるため、「オーバーライド」できる必要があります。それ。 (インストールしていないので、確かめるために試すことはできません。)おそらく実際のアプリケーションにはお勧めできませんが、試しているだけなら大丈夫でしょう。

次のようになります:

def myprint(*args):
    # write the function as described by other people
print = myprint

IDLEの Squeezer 拡張機能は、これを行うために作成されました。 Pypiの説明から:

  

非常に長い出力が出力されると、IDLEがハングする可能性があります。これを避けるために、スクイーザー   拡張機能は、80行のテキスト(構成可能)より長い出力をキャッチし、   代わりに長方形のボックスを表示します:

Squeezer、および他の多くのIDLE拡張機能は IdleX に含まれています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top