-i的参数应为2个可读文件

我目前正在像这样使用argparse:

from argparse import ArgumentParser

def is_valid_file(parser, arg):
    if not os.path.exists(arg):
        parser.error("File %s khong ton tai!" % arg)
    else:
        return open(arg, 'rb')   # return an open file handle

def readinput():
    parser = ArgumentParser(description="ikjMatrix multiplication")
    parser.add_argument("-i", dest="filename", required=True,
                        help="File need predict", metavar="FILE",
                        type=lambda x: is_valid_file(parser, x))
    args = parser.parse_args()
    return args.filename.read()

我想运行python3 demo.py -i text1.txt text2.txt。

我想获取2个可读文件。我怎样才能做到这一点?

感谢您的帮助!

评论
  • 维她命
    维她命 回复

    import argparse
    
    parser = argparse.ArgumentParser(description="Testfile")
    parser.add_argument("-f", "--files", help="The files", nargs=2)
    args = parser.parse_args()
    print(args.files)
    

    用法:

    python .\test.py -f 1.txt 2.txt
    ['1.txt', '2.txt']
    
    python .\test.py -f 1.txt      
    usage: test.py [-h] [-f FILES FILES]
    test.py: error: argument -f/--files: expected 2 arguments