2017-09-23 59 views
1

我正在處理擴展腳本代碼(Adobe After Effects - 但它基本上只是JavaScript),它需要遍歷服務器上數以萬計的文件名。這在延伸腳本中非常緩慢,但我可以在短短几秒內用python完成我需要的工作,無論如何,這是我的首選語言。所以我想運行一個python文件並將數組返回到extensionscript中。我能夠運行我的python文件並通過創建並執行一個批處理文件來傳遞一個參數(根文件夾),但是如何將結果(數組)傳回到擴展?我想我可以寫出一個.csv並將其讀回,但看起來有點「哈克」。從python腳本返回參數putscript

+0

你可以做到這一點。我不記得如何,但閱讀文檔。 Extendscript有一些JS沒有的功能。具體指令等。 – user1167442

+0

我在JavaScript工具指南中搜索了一下,所有我想到的是.execute()方法,它將運行批處理文件,但我不知道如何將數組放回到AE中。任何具體的想法? – Spencer

+0

從JS工具指南re:fileObj.execute()方法「如果應用程序啓動成功,立即返回true」。所以我不能返回任何東西... – Spencer

回答

2

在After Effects中,您可以使用「system」對象的callSystem()方法。這使您可以訪問系統的shell,以便可以從代碼運行任何腳本。因此,您可以編寫回顯或打印數組的python腳本,這本質上就是system.callSystem()方法返回的內容。這是一個同步調用,因此它必須在ExtendScript的下一行執行之前完成。

實際的代碼可能通過類似:

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

+0

這正是我需要的,謝謝!黨extendscript文檔是可怕的......有一個在JavaScript工具指南沒有這方面的記載,只有AE腳本指南,甚至還有它是很難找到... – Spencer

+0

@Spencer - Extenscript文檔是可怕的。很高興你解決了它。 – user1167442