2015-02-09 55 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

相關問題