git stash
сохраняет ваши изменения, но сбрасывает состояние до последнего коммита. Чтобы восстановить сохраненные (не зафиксированные) изменения, просто запустите git stash apply
. ( Узнайте больше в документации. )
Прямо из одного из моих сценариев:
import sys
def prog1_func1_act1(): print "pfa1"
def prog2_func2_act2(): print "pfa2"
commands = {
"prog1 func1 act1": prog1_func1_act1,
"prog2 func2 act2": prog2_func2_act2
}
try:
commands[" ".join(sys.argv[1:])]()
except KeyError:
print "Usage: ", commands.keys()
Это - довольно быстрое и грязное решение, но работает отлично для моего использования. Если бы я должен был очистить его немного, то я, вероятно, добавил бы argparse к соединению для парсинга позиционного и аргументы ключевого слова.
cmd
модуль, вероятно, работал бы хорошо на это.
Пример:
import cmd
class Calc(cmd.Cmd):
def do_add(self, arg):
print sum(map(int, arg.split()))
if __name__ == '__main__':
Calc().cmdloop()
Выполнение это:
$python calc.py
(Cmd) add 4 5
9
(Cmd) help
Undocumented commands:
======================
add help
(Cmd)
См. документы Python или сайт PyMOTW для большего количества информации.
Python имеет модуль для парсинга параметров командной строки, optparse.
Вот мое предложение.
Измените свою грамматику немного.
Используйте optparse.
Идеально также позволяя более гибкий парсинг, например,
jump_to_folder -n theappname -v2 cmd
jump_to_folder -n theappname cmd source
jump_to_folder -n theappname -v2 cmd source
jump_to_folder -n theappname -v1 cmd build
jump_to_folder -n theappname -1 cmd build
jump_to_folder -n theappname -v2 cmd build
Затем у Вас есть 1 или 2 args: команда всегда является первым аргументом. Это - дополнительный аргумент, всегда второй аргумент.
Все остальное - опции без определенного порядка.