2017-03-17 38 views
2

因此,我正在编写一个python脚本,它从google工作表中获取数据并将其返回给我为After Effects编写的ExtendScript脚本。将python脚本的结果传递给ExtendScript`.jsx`文件

相关的位是:

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脚本来获得它所需要的工作...

在此先感谢您的意见!

-P

回答

1

After Effects中必须调用系统命令,并得到的结果的可能性:

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

您的Python脚本应该阅读本开始从环境可变因素stdout

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

看看到AE Scripting Guide

1

您可以通过设置环境变量的传递变量。 小例子,如何从extendscript调用带有ARGS外部脚本:Access environment variables from Python

+0

啊哈,这听起来像一个解决方案,分#1和#2!当环境变量改变值来回答第3点时,有没有一种方法可以听取?我假设我会从python操作一个环境变量并从ExtendScript中访问它,而不像我在这里所做的那样使用'results'变量? – PookageHayes

+0

其他问题在这里讨论 http://stackoverflow.com/questions/18969372/execute-external-script-in-extendscript-for-illustrator – emax

相关问题