gpt4 book ai didi

python - 如何使用 appscript 和 Python 将文件列表输入到应用程序中?

转载 作者:行者123 更新时间:2023-12-01 00:00:06 24 4
gpt4 key购买 nike

拿起你的新手盾牌,我要给你洒一些。
我正在尝试让 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_file 对象,例如 x = app('Finder').home.folders['Desktop']().folders['test ']().items()[0],但事实证明这是一个非常愚蠢的对象。尝试app('Adobe Photoshop CS4').open(x)此对象将抛出OSERROR:1230,并显示MESSAGE:需要文件/文件夹

(呃哦,这个 document_file 实际上响应 URL(),所以 File.makewithurl(x.URL()) 可以输入到 open())

嗯,解决了这个问题,有没有办法通过向 Finder 询问由 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...

关于python - 如何使用 appscript 和 Python 将文件列表输入到应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1909282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com