擅长:python、mysql、java
<p><code>arbitrary_args.py</code>:</p>
<pre><code>#!/usr/bin/env python3
import sys
def parse_args_any(args):
pos = []
named = {}
key = None
for arg in args:
if key:
if arg.startswith(' '):
named[key] = True
key = arg[2:]
else:
named[key] = arg
key = None
elif arg.startswith(' '):
key = arg[2:]
else:
pos.append(arg)
if key:
named[key] = True
return (pos, named)
def main(argv):
print(parse_args_any(argv))
if __name__ == '__main__':
sys.exit(main(sys.argv[1:]))
</code></pre>
<p><code>$./arbitrary_args.py cmd posarg1 posarg2 foo bar baz posarg3 quux</code>:</p>
<blockquote>
<p>(['cmd', 'posarg1', 'posarg2', 'posarg3'], {'foo': True, 'bar': 'baz', 'quux': True})</p>
</blockquote>
<p><code>argparse_arbitrary.py</code>:</p>
^{pr2}$
<p><code>$./argparse_arbitrary.py -Ddrink=coffee -Dsnack=peanut</code></p>
<blockquote>
<p>{'snack': 'peanut', 'drink': 'coffee'}</p>
</blockquote>