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

Python script - how to pass password as variable from command line arguments

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

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

目前我通过pythonscript.py

执行脚本

将令牌设置为环境变量:

$ 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")

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

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

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