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。
我是 运行 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。