Опитвам се да напиша интерфейс на командния ред (за първи път) и след като прочетох за argparse
, optparse
и getopt
избрах argparse
поради няколко препоръки тук в SO и другаде в мрежата. Адаптирайки малко от съветите на г-н ван Росъм закачих моя първи интерфейс на командния ред като този:
def main(argv=None):
if argv is None:
argv = sys.argv
desc = u'some description'
parser = argparse.ArgumentParser(description=desc)
parser.add_argument('-s', '--search', help='Search for someone.')
parser.add_argument('-c', '--do_something_else', help='Do something else.')
args = parser.parse_args()
print args
if __name__ == '__main__':
sys.exit(main())
Извършването на python myscript.py -h
води до:
usage: dblp.py [-h] [-s SEARCH] [-c DO_SOMETHING_ELSE]
some description
optional arguments:
-h, --help show this help message and exit
-s SEARCH, --search SEARCH
Search for someone.
-c DO_SOMETHING_ELSE, --do_something_else DO_SOMETHING_ELSE
Do something else.
Така че първият ми въпрос е: Защо SEARCH
и DO_SOMETHING_ELSE
са написани с ГЛАВНИ БУКВИ? Вторият въпрос ще бъде: Нарушавам ли някакви стандарти? Има ли по-добър начин (или хубав пример от реалния свят, от който мога да се уча) как да изградя чисти и полезни интерфейси на командния ред с Python? И има ли клопки, които човек трябва да избягва , при писане на cmd интерфейси?