Присвоение переменных командному сценарию в Automator
Так что я новичок в использовании Automator на OSX
у меня действительно простая функция Python
def test(input1,input2,output):
print str(input1)
print str(input2)
print str(output)
return 'function works'
то, что я хочу сделать, - это создать простое приложение, которое запрашивает расположение файлов двух входов и место назначения файла для вывода (текстовое поле имени для вывода).
так что я возился с: Automator > Выберите Рабочий процесс> Действия> Файлы и папки> Запросить элементы Finder (создайте два из них) > Утилиты> Выполнить сценарий оболочки
Итак, у меня есть три вопроса:
1 Как я могу назначить эти элементы поиска соответственно переменным input1,input2 в моем скрипте python?
2 Где я могу разместить свой скрипт рядом с этим кодом?
import sys
for f in sys.stdin:
print f,
3 В чем разница между стандартными аргументами?
2 ответа
Полный рабочий процесс должен выглядеть примерно так:
в Run Shell Script
шаг, который вы должны установить Pass Input:
в as arguments
, так что вы можете использовать sys.args
массив. Ваш скрипт Python может быть изменен следующим образом:
import sys
input1 = sys.argv[1]
input2 = sys.argv[2]
output = sys.argv[3]
print input1
print input2
print output
View Results
шаг только для отладки.
Если вы установите Pass Input:
в to stdin
входные аргументы передаются в ваш скрипт по конвейеру.
Вы можете просто использовать AppleScript:
set inputA to (choose file with prompt "Please choose file one...")
set inputB to (choose file with prompt "Please choose file two…")
set outputA to (choose folder with prompt "Please choose a destination…")
return {((inputA as text) & return & inputB as text) & return & outputA}