1

拿起你的新盾牌,我要给你洒一些。
我正在尝试让 Photoshop CS4 使用 AppScript+Python 打开一个包含 JPEG 图像的文件夹,在 BASH 中可以这样描述:

#!/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舞台上失败了。我真的很想请 Finder 为我列出一个文件夹,然后一次将结果输入 Photoshop 进行处理。
与 Adob​​e 的 ExtendScript 桥等效的 JavaScript 将是:

#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_filex = 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()

嗯,已经解决了这个问题,有没有办法通过向 Finder 询问由UNIX 路径指定的给定文件夹中的文件列表来实际做到这一点?

4

1 回答 1

3

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...
于 2009-12-15T19:36:02.757 回答