66

iPython で for ループ、または複数行のコマンドを導入した場合、どのように戻ってそれに行を追加しますか? 私はこれを実行しました:

for row in table.find_all('tr'):
    cells = row.find_all('td')
    for c,cell in enumerate(cells):
        print c,":",cell.get_text().strip()
    try:
        this = cells[0]
        that = cells[1]
        the_docket = cells[2]
        other_thign = cells[3]
        jumble = re.sub('\s+',' ',str(cells[5])).strip()            
    except:
        "Nope"

そして、それに行を追加する必要があることに気付きましたが、コマンドを実行するb/cのiPythonで「Enter」を押すだけではできません。それで、iPythonでその複数行のコマンドを編集できますか?

4

8 に答える 8

60

iPythonの%edit魔法の機能を使用すると、お気に入りのエディターでコードを編集し、直接入力したかのように実行できます。特別な変数に格納されているため、既に repl に入力したコードを編集することもできます。次に例を示します。

In [1]: def foo(x):
   ...:     print x
   ...:     
In [2]: %edit _i1
于 2012-11-23T22:35:48.217 に答える
54

repl に改行を直接追加する方法もあります: ctrl-v, ctrl-j

ctrl-v は基本的に制御コードを送信し、ctrl-j は改行 (改行) のコードです。入力するのは少し面倒ですが、Bash 自体だけでなく、通常の Python シェルでも機能するという利点があります。

編集: 少なくとも iTerm2 では、単一のホットキーにも割り当てることができます。ctrl-enter を 0x16 0x0a の「16 進コードの送信」に設定しました。cmd-enter などを使用することもできます。

于 2013-09-30T18:52:30.033 に答える
6

完全を期すために: 新しい IPython バージョン (0.11+) には非常に優れたグラフィカル コンソールがあり、矢印でコードをナビゲートしたり、マウスでカーソルを再配置したりできます。

複数行のステートメントでは、一部のキーが特別な機能を果たします (移動するための矢印、Enter改行を挿入するためなど)。デフォルトの動作を取得するには、カーソルをステートメントの最後の行の最後に配置する必要があります。たとえば、上矢印を取得します。↑</kbd> to mean "previous statement" instead of "move the cursor to the previous line". Or get Enter to mean "execute code" instead of "insert line break in the middle of code".

それに関するドキュメントは少しまばらで、別のページに断片化されているため、これを開始するための重要な 3 つのリンクを次に示します。

  1. Qt コンソールの紹介

  2. コマンド ライン引数の代わりにユーザーごとの適切なプロファイル ファイルを使用して IPython を構成する

    あなたはに興味がありますipython_qtconsole_config.py

  3. Windows 7でipythonグラフィカルコンソールを取得するには?

于 2013-10-13T12:00:01.577 に答える