Created on | Updated on

Python Shell の履歴をファイルに保存・読込する

mceclip0.png

Houdini 19.0.488 以降バグが修正され、writePythonShellHistoryFile と readPythonShellHistoryFile が正しく機能するようになりました:https://www.sidefx.com/ja/docs/houdini/hom/hou/ui.html

Python シェルを使えば短い Python スクリプトで Houdini にアクセスすることができます。Python シェルは同じシーンファイル内であれば複数開いても内容は共有されますが、履歴をファイルに保存したりもしくは保存したファイルから履歴に読み込んだりできれば異なるシーンファイル間でも履歴の共有ができるようになります。

hou.ui.writePythonShellHistoryFile(filename=None)

mceclip2.png

現行の Python シェルからコマンド履歴をディスクに保存します。filename None なら、その履歴は$HOME/houdiniX.X/pyshell.history に書き出されます。
この関数を Python シェル外で呼び出すと、その履歴は最後のアクティブシェル(つまり、開いた、または入力を受け入れた最後のシェル)から取得されます。
Python シェルが開かれていなかった場合は、hou.OperationFailed を引き起こします。filename を作成できなかった場合は、hou.OperationFailed を引き起こします。

現行の Python シェルのコマンド履歴を参照するため、異なるシェルで writePythonShellHistoryFile を入力すれば異なる履歴を取得できます。また最後の履歴に当たる hou.ui.writePythonShellHistoryFile() そのものもファイルに出力されます。

hou.ui.readPythonShellHistoryFile(filename=None)

mceclip3.png

指定したファイルの内容を Python シェルのコマンド履歴に読み込みます。filenameNone なら、その履歴は $HOME/houdiniX.X/pyshell.history から読み込まれます。
この関数を Python シェル外で呼び出すと、その履歴は最後のアクティブシェル(つまり、開いた、または入力を受け入れた最後のシェル)から取得されます。
Python シェルが開かれていなかった場合は、hou.OperationFailed を引き起こします。filename が存在しない、または読み込むことができなかった場合は、hou.OperationFailed を引き起こします。

履歴の末尾に hou.ui.readPythonShellHistoryFile() を追加し、その後ろに pyshell.history から読み込んだ履歴を格納します。writePythonShellHistoryFile で書いた履歴をそのまま読み込むこともできますし、自分で作った(もしくは書き換えた)履歴を読み込むこともできます。

問題が解決しない場合は、Born Digital サポートまでお問い合わせ下さい。

※ 問い合わせ対応はBorn Digitalより製品をご購入頂きましたお客様のみのサービスとなります。ご了承下さい。
サポート問い合わせ