2017-09-23 15 views
1

私はextendscriptコード(Adobe After Effects - 基本的にはjavascriptです)を使って、サーバー上の何万ものファイル名を繰り返し処理する必要があります。これはエクステンションスクリプトでは非常に遅いですが、私が好む言語であるPythonを使用すると、ほんの数秒で必要なものを達成できます。ですから、私はPythonファイルを実行し、配列をextendscriptに戻したいと思います。私はPythonファイルを実行し、バッチファイルを作成して実行することで引数(ルートフォルダ)を渡すことができますが、どのように結果(配列)をextendscriptに渡すのでしょうか?私は.csvを書き出してこれを読むことができると思いますが、それはちょっとした "ハッキー"のようです。Pythonスクリプトからextendscript戻り値を返します

+0

あなたはそれを行うことができます。私はどのように覚えていないが、ドキュメントを読む。 ExtendscriptにはJSにはない機能がいくつかあります。具体的な指令など。 – user1167442

+0

JavaScriptツールガイドを少し調べましたが、私が思いついたのはバッチファイルを実行する.execute()メソッドですが、配列をAEに戻す方法はわかりません。任意の具体的なアイデアですか? – Spencer

+0

JS Tools Guideからre:fileObj.execute()メソッド "アプリケーションの起動が成功した場合にtrueを返します。"だから私はそれから何も返すことはできません。 – Spencer

答えて

2

After Effectsでは、「システム」オブジェクトのcallSystem()メソッドを使用できます。これにより、システムのシェルにアクセスできるようになり、コードから任意のスクリプトを実行できます。したがって、配列をエコーまたはプリントするpythonスクリプトを書くことができます。これは基本的にsystem.callSystem()メソッドによって返されるものです。これは同期呼び出しであるため、ExtendScriptの次の行が実行される前に完了しなければなりません。

のようなものによって、実際のコードがあります

var stdOut = system.callSystem("python my-python-script.py")

+0

これはまさに私が必要なものです、ありがとう! Dang extendscriptのドキュメントは恐ろしいです... javascriptのツールガイドにはAEスクリプティングガイドだけでなく、それが見つけにくいということは言及されていません。 – Spencer

+0

@Spencer - Extenscriptのドキュメントはひどいです。あなたがそれを解決してうれしい。 – user1167442

関連する問題