如何使用appscript和Python将文件列表提供给应用程序?
把你的新盾牌拿起来,我要给你洒一些。如何使用appscript和Python将文件列表提供给应用程序?,python,macos,applescript,finder,sourceforge-appscript,Python,Macos,Applescript,Finder,Sourceforge Appscript,把你的新盾牌拿起来,我要给你洒一些。 我正试图让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 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进行处理。与Adobe的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);
}
}
#目标photoshop
var folder=文件夹(“~/Desktop/test”);
var images=folder.getFiles();
对于(var i=0;i
我可以给我一个document\u文件
对象,它有一个非常愚蠢的装置,比如x=app('Finder').home.folders['Desktop']().folders['test']().items()[0]
,但这是一个非常愚蠢的对象。正在尝试app('Adobe Photoshop CS4')。打开(x)
此对象将抛出OSERROR:1230
,并显示消息:需要文件/文件夹
(哦,这个文档\u文件
实际上响应URL()
,因此file.makewithurl(x.URL())
可以输入open()
)
Ehm已经解决了这个问题,有没有一种方法可以通过请求Finder提供给定文件夹中由UNIX路径指定的文件列表来真正做到这一点 Photoshop的open命令需要别名对象(或别名对象列表)
另外,OSX没有使用Finder的脚本界面,而是提供了一个隐藏的可编写脚本的应用程序,System Events.app
,其中包括一个具有各种属性的磁盘文件夹文件
套件。而且,在某些情况下,使用Python模块(如os.listdir等)进行文件搜索,然后使用appscript的别名形成适当的引用可能会更简单。为什么会有applescript标记?打字错误
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...