mirror of
https://github.com/python/cpython.git
synced 2025-07-07 19:35:27 +00:00
Initial revision
This commit is contained in:
parent
df79a1ee19
commit
c636014c43
47 changed files with 5492 additions and 0 deletions
47
Lib/getopt.py
Normal file
47
Lib/getopt.py
Normal file
|
@ -0,0 +1,47 @@
|
|||
# module getopt -- Standard command line processing.
|
||||
|
||||
# Function getopt.getopt() has a different interface but provides the
|
||||
# same functionality as the Unix getopt() function.
|
||||
|
||||
# It has two arguments: the first should be argv[1:] (it doesn't want
|
||||
# the script name), the second the string of option letters as passed
|
||||
# to Unix getopt() (i.e., a string of allowable option letters, with
|
||||
# options requiring an argument followed by a colon).
|
||||
|
||||
# It raises the exception getopt.error with a string argument if it
|
||||
# detects an error.
|
||||
|
||||
# It returns two items:
|
||||
# (1) a list of pairs (option, option_argument) giving the options in
|
||||
# the order in which they were specified. (I'd use a dictionary
|
||||
# but applications may depend on option order or multiple
|
||||
# occurrences.) Boolean options have '' as option_argument.
|
||||
# (2) the list of remaining arguments (may be empty).
|
||||
|
||||
error = 'getopt error'
|
||||
|
||||
def getopt(args, options):
|
||||
list = []
|
||||
while args and args[0][0] = '-' and args[0] <> '-':
|
||||
if args[0] = '--':
|
||||
args = args[1:]
|
||||
break
|
||||
optstring, args = args[0][1:], args[1:]
|
||||
while optstring <> '':
|
||||
opt, optstring = optstring[0], optstring[1:]
|
||||
if classify(opt, options): # May raise exception as well
|
||||
if optstring = '':
|
||||
if not args:
|
||||
raise error, 'option -' + opt + ' requires argument'
|
||||
optstring, args = args[0], args[1:]
|
||||
optarg, optstring = optstring, ''
|
||||
else:
|
||||
optarg = ''
|
||||
list.append('-' + opt, optarg)
|
||||
return list, args
|
||||
|
||||
def classify(opt, options): # Helper to check type of option
|
||||
for i in range(len(options)):
|
||||
if opt = options[i] <> ':':
|
||||
return options[i+1:i+2] = ':'
|
||||
raise error, 'option -' + opt + ' not recognized'
|
Loading…
Add table
Add a link
Reference in a new issue