Можно ли использовать VS Code для передачи нескольких аргументов командной строки в скрипт Python?Python

Программы на Python
Anonymous
Можно ли использовать VS Code для передачи нескольких аргументов командной строки в скрипт Python?

Сообщение Anonymous »

Согласно официальной документации «Отладка Python в VS Code», launch.json можно настроить для запуска с определенными аргументами командной строки, или вы можете использовать ${command:pickArgs для ввода аргументов во время выполнения. .
Примеры размещения аргументов в launch.json:
  • Указание аргументов при запуске .json для Python
  • Код Visual Studio: как отлаживать скрипт Python с аргументами
Однако я бы предпочел использовать но я бы предпочел использовать ${command:pickArgs, потому что это упрощает многократное тестирование с разными значениями.
Когда я впервые попробовал это, я разрешил VS Code для создания файла launch.json. По умолчанию он содержал следующее:

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

            "args": [
"${command:pickArgs}"
]
Когда я запускаю файл, я получаю диалоговое окно для ввода аргументов:

Однако, если я ввожу несколько аргументов, они заключаются в кавычки и обрабатываются как один строковый аргумент. . В случае, когда, например. аргументы должны быть числовыми, генерируется ошибка. Например, если я передаю 4 7, оба из которых необходимо привести к int, sys.argv[1] получит значение '4 7', а не '4', выдает ошибку

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

invalid literal for int() with base 10: '4 7'
Я попробовал разделить аргументы запятыми и заключить их в кавычки, и у меня получилось sys.argv[1] со значениями типа '4, 7'< /code> или «4», «7». Излишне говорить, что они тоже не работают.
Я видел в Интернете примеры конфигурации launch.json следующим образом:

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

            "args": "${command:pickArgs}"
То есть ${command:pickArgs не заключен в скобки. Однако это создает проблему: если в пути к интерпретатору Python есть пробелы, путь разбивается на пробелы. См., например:
Пробелы в пути интерпретатора Python или программе приводят к неправильному заключению в кавычки команд отладки с аргументами #233
Похоже, что решение состоит в том, чтобы поставьте скобки, с чего я и начал в первую очередь. Поскольку VS Code делает это автоматически, я не уверен, откуда берутся различные примеры (со скобками или без них), и не могу найти документацию по этому поводу, кроме очень краткого упоминания ${command:pickArgs} в официальной документации, ссылку на которую я дал в самом начале.
Итак, мне не удалось найти способ передать несколько аргументов с помощью ${command:pickArgs} (в отличие от жесткого кодирования непосредственно в файле launch.json), а единственное многообещающее решение (удаление скобок) плохо документировано, генерирует другие ошибки, и решение, похоже, состоит в том, чтобы снова вставить скобки.
Можно ли это вообще сделать?

Подробнее здесь: https://stackoverflow.com/questions/789 ... python-scr

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