如何通过命令行传递参数以在Python中设置环境

2024-04-26 17:23:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是python3.7和os库。我必须在舞台和测试环境中运行一系列测试。目前,代码将环境设置为STAGE

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

但我希望通过命令行传递一个参数来设置它。有人吗?在


Tags: 代码命令行env参数environment环境osstage
3条回答

对于UNIX shell的命令行,可以将env变量设置为命令的一部分:

$ ENV=STAGE pytest ./tests/

在“python”之后我的文件.py“,只需键入由空格分隔的参数,在代码中,可以执行以下操作:

import sys

nameOfScript = sys.argv[0]
commandLineArgs = sys.argv[1:]
commandLineArgsAsStr = str(sys.argv)
numArgs = len(sys.argv)

设置liking的环境变量相当简单,给定单个环境变量的名称和值将大致如下:

使用命令行

import os
import sys

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

os.environ[var_name] = var_value

只需从命令行执行脚本:

^{pr2}$

这可以在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

相关问题 更多 >