假设我有一个对文件执行某些操作的脚本。它在命令行上使用此文件的名称,但如果未提供,则默认为已知文件名(content.txt
例如)。使用 python 的argparse
,我使用以下内容:
parser = argparse.ArgumentParser(description='my illustrative example')
parser.add_argument('--content', metavar='file',
default='content.txt', type=argparse.FileType('r'),
help='file to process (defaults to content.txt)')
args = parser.parse_args()
# do some work on args.content, which is a file-like object
这很好用。唯一的问题是,如果我运行python myscript --help
,我会得到一个ArgumentError
文件是否不存在(我想这是有道理的),并且没有显示帮助文本。如果用户只想要--help
. 有没有办法做到这一点?我知道我可以将参数设置为字符串,然后自己处理打开文件(我一直在这样做),但是处理它会很方便argparse
。