Использование AppleScript для экспорта отдельных заголовков фотографий в текстовый файл из приложения macOS Photos

#macos #applescript #photo

#macos #applescript #фотография

Вопрос:

Я хотел бы отсканировать свою библиотеку фотографий (macOS 10.15.6, приложение Photos 5.0) и экспортировать исходное имя файла выбранных фотографий в текстовый файл. У меня есть простой скрипт ниже в качестве отправной точки, который неправильно преобразует имя файла в читаемый текст. Я ожидаю, что мне нужно выполнить какую-то операцию «преобразовать в строку» для имени файла, но я получаю пустые ответы…

Любые предложения будут оценены

код, который я сейчас использую:

 set myFile to open for access "/Users/ed/Desktop/testFile.txt" with write permission
write "file startn" to myFile

tell application "Photos"
    activate
    set imageSel to (get selection)
    if imageSel is {} then
        error "Please select an image."
    else
        repeat with im in imageSel
            write filename of im to myFile
            write "nnext photon" to myFile
        end repeat
        
    end if
end tell

write "file endn" to myFile
close access myFile
  

Ответ №1:

Я предлагаю создать список имен файлов, затем преобразовать список в абзацы с text item delimiters помощью и записать текст на диск.

Кроме того, настоятельно рекомендуется добавить в деталь надежную обработку ошибок write .

 tell application "Photos"
    set imageSel to selection
    if imageSel is {} then
        error "Please select an image."
    else
        set theNames to {"file start"}
        repeat with im in imageSel
            set end of theNames to filename of im
        end repeat
        set end of theNames to "file end"
    end if
end tell
set {TID, text item delimiters} to {text item delimiters, linefeed}
set theNames to theNames as text
set text item delimiters to TID

set testFile to POSIX path of (path to desktop) amp; "testFile.txt"
try
    set fileDescriptor to open for access testFile with write permission
    write theNames to fileDescriptor
    close access fileDescriptor
on error
    try
       close testFile
    end try
end try
  

Комментарии:

1. Вадиан: Спасибо… этот код дает именно тот результат, который я хотел. Мне нужно будет немного почитать, чтобы полностью понять решение, но вы указали мне отличный путь.