Как передать аргумент через командную строку, чтобы установить среду в Python - PullRequest
0 голосов
/ 28 октября 2019

Я использую Python 3.7 и библиотеку os. Я должен выполнить ряд тестов в среде STAGE и TEST. В настоящее время код задает для среды STAGE

ENVIRONMENT = os.getenv ('ENV', 'STAGE')

, но я хочу, чтобы он был установлен путем передачиаргумент через командную строку. Кто-нибудь?

Ответы [ 3 ]

1 голос
/ 28 октября 2019

В случае командной строки оболочки UNIX вы можете установить переменную env как часть вашей команды:

$ ENV=STAGE pytest ./tests/

1 голос
/ 28 октября 2019

После "python myfile.py" просто введите параметры, разделенные пробелами, и в коде вы можете сделать следующее:

import sys

nameOfScript = sys.argv[0]
commandLineArgs = sys.argv[1:]
commandLineArgsAsStr = str(sys.argv)
numArgs = len(sys.argv)
0 голосов
/ 28 октября 2019

Установка переменной среды liking довольно проста, указав имя и значение для одной переменной среды, можно примерно так:

Использование командной строки

import os
import sys

var_name = sys.argv[1]
var_value = sys.argv[2]

os.environ[var_name] = var_value

Просто запустите ваш скрипт из командной строки как:

my.script ENV STAGE

Это может быть проверено следующим образом в python:

var_name in os.environ #python3
os.environ.has_key(var_name) #python2

Интерактивно

Использование конструкции while в скрипте

import os

while True:

    env_var = input("Enter ENV (name:value), type 'done' to exit: ")) #enter var:value

    if env_var.lower() == "done":

        break

    try:

        var, val = env_var.split(":")

    except:

        print ("Wrong input format! name:value required.")

        continue

    os.setenv[var] = val
...