Python脚本-如何通过命令行参数将密码作为变量传递

时间:2019-06-27 15:42:59

标签: python variables command line

我正在使用python运行REST调用以生成访问令牌。 REST调用有效负载具有密码值。 我不想在那里硬编码密码,但是在运行python脚本时将其作为选项传递。以下是python脚本中的有效负载。

payload = "grant_type=client_credentials&client_id=userid&client_secret=password&scope=AppIdClaimsTrust&intent=RequestLink"

当前,我通过 python script.py

执行脚本

2 个答案:

答案 0 :(得分:0)

将令牌设置为环境变量:

$ export TOKEN=XXXXXXX

然后使用os库:

#!/usr/bin/env python
import os

token = os.environ['TOKEN'] 

在通常将其硬编码到脚本中的地方使用token

或者,您也可以将其作为command line argument传递。

$ python script.py XXXXXXXX

在您的脚本中,使用以下命令访问令牌:

#!/usr/bin/env python
import sys

if len(sys.argv) > 1:
    token = sys.argv[1]
else:
    print("No token passed")

答案 1 :(得分:0)

您可以使用sys.argv使用它。这提供了传递给脚本的参数列表,其中sys.argv[0]是脚本名称(或“ -c”)。您可以使用sys.argv[1]访问第一个参数,尽管通常最好进行一些错误检查以确保您确实得到了想要的东西。我经常会做类似的事情:

import sys
args = sys.argv
if args[1]:
    password = args[1]

您还可以使用更强大的解析器,例如argparse