どのようにしてappscriptとPythonとアプリにファイルのリストを養うのか?
-
19-09-2019 - |
質問
私はいくつかであなたを振りかけることを約よ、アップあなたの初心者くさい-シールドを取得します。
私はPhotoshopのCS4はBASHにそうように説明することができAppScript + Pythonの、とJPEG画像の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の一つに結果を供給したいと思います。
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);
}
}
私は私にdocument_file
のような恐ろしく愚かなからくりでx = app('Finder').home.folders['Desktop']().folders['test']().items()[0]
オブジェクトを取得することができますが、それは本当に愚かなオブジェクトであることが判明しました。 app('Adobe Photoshop CS4').open(x)
で、OSERROR: 1230
がスローされます。このオブジェクトをMESSAGE: File/Folder expected
しようとしています。
(UH-OH、このdocument_file
が実際URL()
に応答するので、File.makewithurl(x.URL())
をopen()
に供給することができる)
EHMは、のUNIXパスで指定し、実際に指定したフォルダ内のファイルのリストについては、ファインダーを求めることでこれを行う方法がある、ということに解決しましたか?
解決
Photoshopのopenコマンドは、別名オブジェクト(または別名オブジェクトのリスト)が必要です。
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...