私は最近、ワークフローの一部としてIPythonノートブックを使用するようになりました。ただし、開いているIPythonノートブックの個々のセルに.pyファイルをインポートして、編集、実行、保存できるようにする方法を見つけることに成功していません。これはできますか?
.pyファイルを新しいノートブックとしてインポートする方法を説明するドキュメントでこれを見つけましたが、これは私が達成したいことには達していません。
任意の提案をいただければ幸いです。
私は最近、ワークフローの一部としてIPythonノートブックを使用するようになりました。ただし、開いているIPythonノートブックの個々のセルに.pyファイルをインポートして、編集、実行、保存できるようにする方法を見つけることに成功していません。これはできますか?
.pyファイルを新しいノートブックとしてインポートする方法を説明するドキュメントでこれを見つけましたが、これは私が達成したいことには達していません。
任意の提案をいただければ幸いです。
回答:
編集:IPython 3(現在はJupyterプロジェクト)以降、ノートブックにはテキストエディターがあり、テキストファイルの読み込み/編集/保存のより便利な代替手段として使用できます。
テキストファイルは、magicコマンドを使用してノートブックセルに読み込むことができます%load
。
以下を含むセルを実行すると、
%load filename.py
の内容がfilename.py
次のセルに読み込まれます。通常どおり編集して実行できます。
セルの内容をファイルに保存するには、セル%%writefile filename.py
の先頭にcell-magic を追加して実行します。同じ名前のファイルがすでに存在する場合は、警告なしに上書きされることに注意してください。
マジックコマンドのヘルプを表示するには、?
:のような%load?
またはを追加します%%writefile?
。
マジック関数の一般的なヘルプについては、「%magic」と入力してください。使用可能なマジック関数のリストについては、%lsmagicを使用してください。それらの説明については、%magic_name?を入力してください(例: '%cd?')。
参照:公式IPythonドキュメントのマジック関数。
%save -f
て、私が探していた方法を実行する方法のようです。ありがとう!
save -f
はファイルに保存する一種の間接的な方法であり、最初にセルを実行してから正しい参照を提供する場合にのみ機能します。一般に%%writefile
、現在のセルをファイルに書き込む方が使いやすいです。これについて言及するために回答を更新しました。
%loadpy
(の代わりに%load
)です。
%load
、使用は順調に進んでいます: " %loadpy
(Alias of %load
)- %loadpy
ある程度の柔軟性が得られ、.py
拡張機能の要件がなくなりました。詳細については%load
、%load
docstringを参照してください。」
%%writefile myfile.py
-a
します(追加に使用)。別のエイリアス:%%file myfile.py
%run myfile.py
%load myfile.py
%lsmagic
%COMMAND-NAME?
%run?
セルマジックコマンドの他に、IPythonノートブック(現在はJupyterノートブック)は非常に優れているので、セルから直接任意のunixコマンドを使用できます(これは、%%bash
セルマジックコマンドを使用する場合と同じです)。
セルからUNIXコマンドを実行するには、コマンドの前に!
マークを付けます。例えば:
!python --version
Pythonのバージョンを確認する!python myfile.py
myfile.pyを実行し、結果を現在のセルに出力します%run
(以下のコメント!python
との違いを参照してください%run
)。また、例を使用した詳細な説明については、このnbviewerを参照してください。お役に立てれば。
!dir Volume in drive D is Documents
などを試しました...したがって、それはbashだけでなく、cmdでもあります。
!python --version
(typo)を意味すると思います
%run myfile.py
は対照的に、使用方法は少し異なり!python myfile.py
ます。前者を実行すると、構成済みのプリロードを含め、ipythonカーネルを使用して実行されます。小さな問題でしたが、今日私はバグに遭遇しました。
%run myfile.py
スクリプトにIPythonセルマジックコマンドを含めながら、この回答で説明されているものと同等のことを実行する場合は、を使用します%run myfile.ipy
。
PythonファイルをIpython notebooks "home" notebooksテーブルにドラッグアンドドロップし、[アップロード]をクリックします。これにより、.pyファイルの内容を含むセルが1つだけの新しいノートブックが作成されます
または、お気に入りのエディターからコピー/貼り付け;)
私は、ファイルを見つけるためにipythonノートブック内でlsとcdを使用することで満足できると思いました。次に、セルにcat your_file_nameと入力すると、ファイルの内容が返されます。これをコードとしてセルに貼り付けることができます。
!cat "file.txt"