我需要使用命令行参数
访问json文件我的代码是python.py:
#########################################
import json
import sys
from sys import argv
from pprint import pprint
with open('cdh/cdh5.json') as data_file:
data = json.load(data_file)
pprint(data['projects']['abcd']['track-branch'])
#################################################
所以,而不是项目abcd,我需要在执行这个python脚本时从命令行传递abcd。
eg1:python.py abcd
将执行:pprint(data['projects']['abcd']['track-branch'])
eg2:python.py efgh
将执行:pprint(data['projects']['efgh']['track-branch'])
我试过这样做: -
pprint(data['projects']['sys.args']['track-branch'])
但它给出了以下错误:
pprint(data['projects']['sys.argv']['track-branch'])
KeyError: 'sys.argv'
答案 0 :(得分:2)
要访问从命令行传入的参数,您需要使用sys.argv
,这是正确的。
但是你应该按原样使用它,而不是将它作为字符串传递,就像你正在做的那样。
此外,sys.argv
是来自命令行的所有参数的列表,sys.argv
的第一个元素是已执行的文件(如python.py
)。所以你需要使用第二个元素。示例 -
pprint(data['projects'][sys.argv[1]]['track-branch'])
答案 1 :(得分:1)
你在正确的轨道上,但sys.argv是一个数组,主模块位于第0个索引,每个连续的命令行参数位于索引1,2等。您应该将代码更改为:
pprint(data['projects'][sys.argv[1]]['track-branch'])