我正在使用argparse.ArgumentParser
来解析参数和输出帮助文本。我想显示所有选项的默认值,并设置输出的宽度。我目前的解决方案似乎有点笨拙。有人能建议一个更好的方法来实现这个目的吗?我目前的方法是定义argparse.ArgumentDefaultsHelpFormatter
的子类,然后修改__init__
中的width属性。有没有更干净的方法?
# help class to set width of help to wrap at terminal width
class MyHelpFormatter(argparse.ArgumentDefaultsHelpFormatter):
columns = -1
def __init__(self, *args, **kwargs):
if MyHelpFormatter.columns == -1:
try:
MyHelpFormatter.columns = os.get_terminal_size().columns
if 'width' not in kwargs:
kwargs['width'] = MyHelpFormatter.columns
except OSError:
# not in a terminal
pass
super().__init__(*args, **kwargs)
# instantiate argument parser
parser = argparse.ArgumentParser(description='program description',
formatter_class=MyHelpFormatter)
1条答案
按热度按时间szqfcxe21#
最后,由于冗长,我创建了一个名为www.example.com的简单python文件argparser.py(注意多出的“r”),将其放在python路径中,现在我只使用该路径代替argparse。