2015-02-09 70 views

回答

2
import argparse 

parser = argparse.ArgumentParser() 
parser.add_argument("-p", nargs='?', const="mypass", default="default") 

args = parser.parse_args() 

if args.p: 
    print args.p 

你可以然后检查P的值,并获取密码交互

1

一个简单的类:

class AskUser: 
    def __init__(self, type, func, *args, **kwargs): 
     self.type = type 
     self.func = func 
     self.args = args 
     self.kwargs = kwargs 
    def __call__(self, value): 
     if value == '': 
      value = self.func(*self.args, **self.kwargs) 
     return self.type(value) 

,您可以直接插入argparse:

parser = argparse.ArgumentParser() 
parser.add_argument('user', nargs='?', type=AskUser(str, input, 'Enter user name: '), default='') 
parser.add_argument('file', nargs='?', type=AskUser(Path, filedialog.asksaveasfilename, 
    title='Select a file', filetypes=(('CSV files', '*.csv'),), defaultextension='.csv'), default='') 
args = parser.parse_args() 
+0

哪里AskUser从何而来? – user12711 2017-07-07 00:26:30