Я уже некоторое время приезжаю в stackoverflow и очень благодарен за этот невероятный ресурс так как это помогло мне в бесчисленных случаях, но это мой первый вопрос, поэтому, пожалуйста, помилуй меня;)
Я пытаюсь передать параметры командной строки в свой скрипт python при запуске из командной строки с помощью «open ". Я понимаю, что я могу просто использовать $ python myscript.py [arg1] [arg2], но я действительно пытаюсь использовать команду «open», если это возможно.
Вот мой питон скрипт (myscript.py):
#!/usr/local/bin/python
import optparse
import sys
def main():
parser = optparse.OptionParser()
parser.add_option('--arg1', action="store", dest="arg1", type="int", default="0")
parser.add_option('--arg2', action="store", dest="arg2", type="int", default="0")
opts, remainder = parser.parse_args()
print "Options: ", str(opts)
print "Remainders: ", str(remainder)
print "Argv: ", sys.argv[:]
if __name__ == "__main__":
main()
Вот команда, я бегу в терминале:
$ open -a terminal myscript.py --args --arg1=5 --arg2=10
И выход из этого:
Options: {'arg1': 0, 'arg2': 0}
Remainders: []
Argv: ['/Users/test/Desktop/myscript.py']
Итак, сценарий запущен, но «-args» не передаются, и скрипт просто использует значения по умолчанию для argum Энты! Вот документация по --args опции для открытой команды:
--args All remaining arguments are passed in argv to the application's main() function instead of opened.
Я перепробовал все виды вещей, чтобы попытаться получить эту работу, но я не могу получить аргументы в мой сценарий, с помощью «открыть». Заранее благодарю вас за любые рекомендации или рекомендации о том, как заставить это работать.
Большое спасибо за быстрый ответ Марк, я не могу поверить, что еще не наткнулся на эту тему в своих исследованиях. Я изучу это. Еще раз спасибо, я очень ценю помощь! –