Как использовать переменное количество аргументов в pyinvokePython

Программы на Python
Ответить
Anonymous
 Как использовать переменное количество аргументов в pyinvoke

Сообщение Anonymous »

Я хотел бы использовать переменное количество аргументов в задаче для pyinvoke.
Пример:

Код: Выделить всё

from invoke import task

@task(help={'out_file:': 'Name of the output file.',
'in_files': 'List of the input files.'})
def pdf_combine(out_file, *in_files):
print( "out = %s" % out_file)
print( "in = %s" % list(in_files))
Вышеуказанное — лишь один из многих вариантов, которые я опробовал, но похоже, что pyinvoke не может обрабатывать переменное количество аргументов. Это правда?

Приведенный выше код дает

Код: Выделить всё

$ invoke pdf_combine -o binder.pdf -i test.pdf test1.pdf
No idea what '-i' is!
Аналогично, если я определяю pdf_combine(out_file, in_file) без звездочки перед in_file

Код: Выделить всё

$ invoke pdf_combine -o binder.pdf -i test.pdf test1.pdf
No idea what 'test1.pdf' is!
Если я вызываю задачу только с одним in_file, как показано ниже, она выполняется нормально.

Код: Выделить всё

$ invoke pdf_combine -o binder.pdf -i test.pdf
out = binder.pdf
in = ['t', 'e', 's', 't', '.', 'p', 'd', 'f']
Я бы хотел увидеть

Код: Выделить всё

$ invoke pdf_combine -o binder.pdf test.pdf test1.pdf test2.pdf
out = binder.pdf
in = [test.pdf test1.pdf test2.pdf]
В документации pyinvoke ничего подобного я не нашел, хотя не могу себе представить, чтобы у других пользователей этой библиотеки не было необходимости вызывать задачу с переменным количеством аргументов...

Подробнее здесь: https://stackoverflow.com/questions/357 ... n-pyinvoke
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»