#python-3.x #command-prompt #argv
Вопрос:
Я использую библиотеку python, в которой есть шаг настройки, который включает вызов функции и предоставление ключа API в быстром ответе. Он использует input()
. Эта функция создает файл, необходимый для всех конфигураций.
Это нормально для людей использовать API, но я добавляю CI в свой код и хочу, чтобы модульные тесты вызывали этот API. Таким образом, мне нужно выполнить тот же шаг.
Я просто хочу сделать что-то подобное python -c 'lt;PYTHON CODEgt;'
.
Помимо изменения кода, чтобы разрешить необязательный ввод ключа API (чтобы пропустить приглашение), мне интересно, есть ли более простой способ сделать это с sys.argv
помощью .
Я немного погуглил и не смог найти рабочий пример, включающий input()
ввод данных и аргументов.
Мысли оценены по достоинству.
Комментарии:
1. Загляните в
argparse
библиотеку.2. Знаком с
argparse
, но я не вижу, как я мог бы передать это в вызовapi_key = input("what's your API key? : ")
3. Либо вы вводите
input()
данные с помощью синтаксического анализатора аргументов , такого какsys.argv
или, лучшеargparse
, как упоминал @enzo. Или даже и то, и другое, и выберите одно из них для использования во время выполнения. Мне непонятно, чего именно вы хотите или ожидаете в качестве ответа4. @MatBBastos, я пытаюсь сохранить свой вопрос общим, все еще объясняя контекст. Короче говоря, есть ли способ передать аргументы используемым функциям
input()
без изменения исходного кода? Я просто не хочу, чтобы он запрашивал человеческий вклад.5. Будете ли вы выполнять исходный код из файла, не «видя» его? Если вы выполняете его как сценарий, вы можете создать «внешний сценарий», который выполняет его и при необходимости предоставляет входные данные. Это даже не обязательно должно быть на Python, хотя могло бы быть.