передача переменной в скрипт Python, запускаемый из командной строки - PullRequest
0 голосов
/ 02 апреля 2019

Итак, я знаю, что команда для запуска сценария из командной строки:

python script.py var1 var2

и даже используя пакет subprocess

import subprocess
subprocess(python script.py var1 var2)

Но если var1 и / или var2 - это список, как мне этого добиться? Как и сейчас, если мы передадим var1 as a list: ["test", "test"], то когда мы пойдем захватить его, используя sys.argv[element_number], элементы в списке будут разбиты по количеству запятых. Другими словами, я хочу передать весь список, чтобы я мог захватить его как переменную в скрипте, который я вызываю.

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

Я полагаю, когда вы передаете список в виде строки в аргументе командной строки. во время захвата через sys.argv[index] у вас возникают проблемы, потому что у него запятые, поскольку он будет иметь строковый тип.

Вы можете разобрать переменную в требуемом списке.

import sys

def main(*argv, **kwargs):
    if len(sys.argv) < 2:
        print 'Atleast one command line argument required'

    first_arg = sys.argv[1]
    # convert it to list
    first_arg_list = list(first_arg)
    # filter it according to requirement 
    first_arg_list_filtered = [ elem for elem in first_arg_list if elem not in '[],' ]

if __name__ == '__main__':
    main()

Надеюсь, это поможет.

0 голосов
/ 02 апреля 2019

Вы можете использовать модуль argparse из стандартной библиотеки. На Stackoverflow есть много связанных вопросов и ответов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...