通过arg执行功能

Lin*_*ill 3 python argparse

我想要做的是当我输入一个特定的参数时它启动一个函数,这是可能的argparse.因此,如果我在我的应用程序中点击add参数,它会触发"添加"功能.

parser = argparse.ArgumentParser(description='to do list')
parser.add_argument('-a', '--add', help='add an item to the todo list')
parser.add_argument('-r', '--remove',)
parser.add_argument('-l', '--list',)
args = parser.parse_args()

def add(args):
    conn = sqlite3.connect('todo.db')
    c = conn.cursor()
    c.execute("INSERT INTO todo VALUES (args.add, timestamp)")
Run Code Online (Sandbox Code Playgroud)

mgi*_*son 7

当然,你可以add用作type参数:

def add(args):
    conn = sqlite3.connect('todo.db')
    c = conn.cursor()
    c.execute("INSERT INTO todo VALUES (args, timestamp)")

parser.add_argument('-a', '--add', type=add)
Run Code Online (Sandbox Code Playgroud)

如果这还不够好,那么你可以子类化argparse.Action并且几乎让argparse在遇到参数时做任何你想做的事情.

  • 请注意,这将导致操作在解析其余选项之前立即生效.这可能或不重要,但要记住这一点. (2认同)
  • 对于他的用例,是的.我只是想为未来的访问者解决这个问题,他们可能会尝试将此解决方案应用于不同的用例,以便将其解决. (2认同)