Skip to content

Instantly share code, notes, and snippets.

@atl
Created June 4, 2009 13:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save atl/123614 to your computer and use it in GitHub Desktop.
Save atl/123614 to your computer and use it in GitHub Desktop.
Stolen shamelessly from Michael Sparks' http://pastebin.com/fc0b32a3
# Stolen shamelessly from Michael Sparks' http://pastebin.com/fc0b32a3
def parseargs(argv, longopts, longflags):
args = {}
for k, key in longopts:
try:
i = argv.index("--"+key)
F = longopts[k,key].__class__(argv[i+1])
args[key] = F
del argv[i+1]
del argv[i]
except ValueError:
try:
i = argv.index("-"+k)
F = longopts[k,key].__class__(argv[i+1])
args[key] = F
del argv[i+1]
del argv[i]
except ValueError:
if longopts[k,key] == None:
print "missing argument: --"+key, "-"+k
sys.exit(0)
args[key] = longopts[k,key]
for f,flag in longflags:
try:
i = argv.index("--"+flag)
args[flag] = True
del argv[i]
except ValueError:
try:
i = argv.index("-"+f)
args[flag] = True
del argv[i]
except ValueError:
args[flag] = False
rest = [a for a in argv if len(argv)>0 and a[0] != "-"]
args["__anon__"] = rest
return args
import sys
args = parseargs( sys.argv[1:],
{ ("f", "file" ): "audio.raw",
("c", "channels"): 2,
("r", "rate"): 44100,
},
[("h","help")],
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment