Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用appscript和Python将文件列表提供给应用程序?_Python_Macos_Applescript_Finder_Sourceforge Appscript - Fatal编程技术网

如何使用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...