كيف تغذي المرء قائمة الملفات في تطبيق مع Appscript و Python؟

StackOverflow https://stackoverflow.com/questions/1909282

سؤال

احصل على Shields NewB الخاص بك، وأنا على وشك رشك مع بعض.
أحاول الحصول على Photoshop CS4 لفتح Foldful من صور JPEG مع AppScript + Python، والتي يمكن وصفها كما لو كانت في 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 المسرح. أود حقا أن أسأل مكتشف سرد مجلد بالنسبة لي، وإطعام النتيجة في فوتوشوب واحد في وقت واحد لمعالجةها.
سيكون أي ما يعادل جافا سكريبت مع جسر Adobe Extandsistript:

#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.

(أه يا، هذا document_file يستجيب في الواقع ل URL(), ، وبالتالي File.makewithurl(x.URL()) يمكن تغذية open())

EHM، بعد أن تم حلها، هل هناك طريقة للقيام بذلك فعليا عن طريق مطالبة مكتشف للحصول على قائمة الملفات في مجلد معين، محددة بواسطة مسار يونيكس?

هل كانت مفيدة؟

المحلول

يتطلب الأمر المفتوح فوتوشوب كائن اسم مستعار (أو قائمة كائنات الاسم المستعار).

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...
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top