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

时间:2017-03-17 17:22:29

标签: python google-sheets jsx extendscript

所以,我正在编写一个python脚本,从google工作表中获取数据并将其返回到我正在为After Effects编写的ExtendScript脚本。

相关位是:

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脚本(例如电子表格ID和范围)?

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

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

  4. 提前感谢您的建议!

    -P

2 个答案:

答案 0 :(得分:1)

您可以通过设置环境变量传递变量。 小例子如何使用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

答案 1 :(得分:1)

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

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

查看AE Scripting Guide