将 python 脚本的结果传递给 ExtendScript `.jsx` 文件

Passing the result of a python script to an ExtendScript `.jsx` file

所以,我正在编写一个 python 脚本,它从 google sheet 获取数据,然后 return 将其返回到我正在使用的 ExtendScript 脚本为 After Effects 写作。

相关位是:

getSpreadsheetData.py

def main():
    values = getSpreadsheetRange("1M337m3YHCdCDcVyS4fITvAGJsw7rGQ2XGbZaKIdkJPc", "A1:Q41")
    return processValues(values)

afterEffectsScript.jsx

var script_file = File("getSpreadsheetData.py");
var results = script_file.execute();
$.writeln(results);
alert("done!");

所以,我有三个问题:

  1. 如何将变量从 afterEffectsScript.jsx 传递到 python 脚本(例如传播sheet id 和范围)?

  2. 如何从 python 脚本中获取 return 并将其 return 返回到 jsx 文件?

  3. 如何让我的 afterEffectsScript 异步工作,以便它可以等待 python 脚本获得它需要的东西...

在此先感谢您的建议!

-P

您可以通过设置环境变量来传递变量。 小示例如何使用 extendscript 中的参数调用外部脚本:

var script_file = File("getSpreadsheetData.py");
$.setenv("arg_1", "arg1_value");
$.setenv("arg_2", "arg2_value");
script_file.execute();

您 python 脚本应该从从环境中读取此变量开始:Access environment variables from Python

After Effects 可以调用系统命令并获得 stdout 的结果。

var cmd = "pwd";
var stdout = system.callSystem(cmd);
$.writeln(stdout);

看看 AE Scripting Guide