2

Anacondaシェルでサンプルから Python コードを実行したいと考えています。残念ながら、貼り付けたいステートメントには で始まる行があります。手動で削除せずにそのようなステートメントを実行する簡単な方法はありますか? 他のシェルが存在することは知っていますが、それらを Anaconda で動作させる必要はありません。......

>>> features  = array([[ 1.9,2.3],
...                    [ 1.5,2.5],
...                    [ 0.8,0.6],
...                    [ 0.4,1.8],
...                    [ 0.1,0.1],
...                    [ 0.2,1.8],
...                    [ 2.0,0.5],
...                    [ 0.3,1.5],
...                    [ 1.0,1.0]])
4

2 に答える 2

5

Python のネイティブdoctest パーサーは、これらの厄介な repr プロンプトを処理するために使用されます。:)

>>> from doctest import DocTestParser
>>> repr_code = '''
... >>> features  = array([[ 1.9,2.3],
... ...                    [ 1.5,2.5],
... ...                    [ 0.8,0.6],
... ...                    [ 0.4,1.8],
... ...                    [ 0.1,0.1],
... ...                    [ 0.2,1.8],
... ...                    [ 2.0,0.5],
... ...                    [ 0.3,1.5],
... ...                    [ 1.0,1.0]])
... '''
>>> p = DocTestParser()
>>> code = next(filter(None, p.parse(repr_code.strip()))) # Filter out the useless parts
>>> print(code.source)
features  = array([[ 1.9,2.3],
               [ 1.5,2.5],
               [ 0.8,0.6],
               [ 0.4,1.8],
               [ 0.1,0.1],
               [ 0.2,1.8],
               [ 2.0,0.5],
               [ 0.3,1.5],
               [ 1.0,1.0]])
>>> array = list # Because it's cheaper than numpy
>>> exec(code.source) # If you're feeling very lucky...
>>> len(features)
9    
于 2013-09-23T01:26:58.023 に答える