我试图向python传递两个参数,一个是只读JSON文件,另一个是char。事实上,我想要两个位置的参数,但我也做不到,所以让char是可选的。最后,我将阅读字典,而字符将是我的关键。
当我像下面这样尝试时,第二个参数被传递为None。我不明白它为什么是空的。你有什么想法吗?
非常感谢!
python3 myProg.py dict.json -a
import json
import argparse
if __name__ == '__main__':
    parser = argparse.ArgumentParser(description = 'program')
    parser.add_argument('json', nargs = 1, type = argparse.FileType('r'))
    parser.add_argument('-args', nargs ="?")
    arguments = parser.parse_args()
    dictionary = json.load(arguments.json[0])
    arg_start = arguments.args收到此错误:
命名空间(args=None,json=<_io.TextIOWrapper名称=‘json=<_io.TextIOWrapper.json’模式=‘r’编码=‘utf-8’>)
发布于 2017-07-06 20:56:30
看起来你的json文件没问题。如果省略了nargs=1,就可以使用:
dictionary = json.load(arguments.json)-args是nargs='?'。这意味着省略一个论点是可以的。如果不使用它的所有值,将是Actions default (当前为None)。
如果仅作为-a提供,则该值是Action的const (也是None)。
如果以-a foo的形式提供,它将设置该字符串。
如果您将该argument定义为位置、普通的'args‘(没有-),那么它将接受json文件名之后的下一个字符串。
https://stackoverflow.com/questions/44958582
复制相似问题