#python #arguments #vlc #sourceforge-appscript
#python #аргументы #vlc #sourceforge-appscript
Вопрос:
Я хочу создать скрипт на Python для управления VLC. VLC можно управлять с помощью AppleScript, и с помощью py-appscript
I можно запускать код AppleScript из Python.
Используя AppleScript, я могу воспроизводить / приостанавливать VLC с помощью
tell application "VLC" to play
Это равно следующему в py-appscript
app('VLC').play()
Я также должен иметь возможность перейти к следующему треку с помощью:
app('VLC').next()
Но при этом я получаю следующую ошибку Python:
Traceback (most recent call last):
File "vlclib.py", line 25, in <module>
app('VLC').next()
TypeError: next() takes exactly 2 arguments (1 given)
Кто-нибудь знает, почему я получаю эту ошибку? Приведенный выше код должен соответствовать следующему в AppleScript, который работает отлично:
tell application "VLC" to next
Комментарии:
1. Не могли бы вы опубликовать результат выполнения
help(app('VLC').next)
в строке 24 в своем скрипте?2. Это дает мне следующее.
Help on method next in module appscript.reference: next(self, klass) method of appscript.reference.Application instance
Это как если бы он думалnext()
, что существует вpy-appscript
, ноnext()
должен вызывать VLC через AppleScript.
Ответ №1:
Из документации appscript:
К именам, которые соответствуют ключевым словам Python или именам, зарезервированным appscript, добавляется символ подчеркивания.
Поскольку next
это зарезервированное ключевое слово, вы можете исправить это, выполнив
app('VLC').next_()
Комментарии:
1. Ах, конечно! Наверное, я не думал о
next
том, чтобы быть ключевым словом, но, конечно, это так. На самом деле, этоapp('VLC').next_()
2. Durr … :). Я обновил ответ, чтобы он соответствовал документации. Спасибо!