怎样才能养活文件列表与appscript和Python的应用程序?
-
19-09-2019 - |
题
让您福利局护罩起来,我对一些洒你。结果 我试图得到的Photoshop CS4打开JPEG图像与AppScript + Python,它可以像这样在BASH描述的folderful:
#!/bin/bash
for F in `ls ~/Desktop/test`; do
open -a "Adobe Photoshop CS4" $F
# proceed to mutilate the image appearance
done
我未能在ls ~/Desktop/test
阶段。我真的很想问搜索列出文件夹我,结果反馈到Photoshop中一次一个对它们进行处理。结果
一个JavaScript相当于Adobe的ExtendScript桥将是:
#target photoshop
var folder = Folder("~/Desktop/test");
var images = folder.getFiles();
for (var i=0; i < images.length; i++) {
if (images[i] instanceof File && images[i].hidden == false) {
var doc = app.open(images[i]);
// do something to the image here
doc.close(SaveOptions.DONOTSAVECHANGES);
}
}
我可以得到我喜欢document_file
一个可怕的傻玩意儿一x = app('Finder').home.folders['Desktop']().folders['test']().items()[0]
对象,但原来是一个非常愚蠢的对象。试图app('Adobe Photoshop CS4').open(x)
这个对象将抛出OSERROR: 1230
,具有MESSAGE: File/Folder expected
。
(嗯,哦,这实际上document_file
响应URL()
,所以File.makewithurl(x.URL())
可以被送入open()
)
埃姆,已经解决了,有没有办法通过询问查找在给定文件夹中的文件列表,以真正做到这一点,通过的 UNIX路径的规定?
解决方案
Photoshop的开放命令需要一个别名对象(或别名对象的列表)。
from appscript import *
folder = '/path/to/folder'
ps = app('Adobe Photoshop CS4')
for f in app('Finder').items[mactypes.Alias(folder)].files.get(resulttype=k.alias):
ps.open(f)
# do stuff here...
不隶属于 StackOverflow