The argparsedokumentasi cukup baik tapi daun keluar beberapa detail yang berguna yang mungkin tidak jelas. (@Diego Navarro sudah menyebutkan beberapa hal ini tetapi saya akan mencoba sedikit memperluas jawabannya.) Penggunaan dasar adalah sebagai berikut:
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--my-foo', default='foobar')
parser.add_argument('-b', '--bar-value', default=3.14)
args = parser.parse_args()
Objek tempat Anda kembali parse_args()adalah objek 'Namespace': Objek yang variabel anggotanya dinamai menurut argumen baris perintah Anda. The Namespaceobjek adalah bagaimana Anda mengakses argumen Anda dan nilai-nilai yang terkait dengan mereka:
args = parser.parse_args()
print args.my_foo
print args.bar_value
(Catatan yang argparsemenggantikan '-' dalam nama argumen Anda dengan garis bawah saat menamai variabel.)
Dalam banyak situasi Anda mungkin ingin menggunakan argumen hanya sebagai flag yang tidak memiliki nilai. Anda dapat menambahkannya dalam argparse seperti ini:
parser.add_argument('--foo', action='store_true')
parser.add_argument('--no-foo', action='store_false')
Di atas akan membuat variabel bernama 'foo' dengan nilai True, dan 'no_foo' dengan nilai False, masing-masing:
if (args.foo):
print "foo is true"
if (args.no_foo is False):
print "nofoo is false"
Perhatikan juga bahwa Anda dapat menggunakan opsi "wajib" saat menambahkan argumen:
parser.add_argument('-o', '--output', required=True)
Dengan begitu, jika Anda menghilangkan argumen ini di baris perintah argparseakan memberi tahu Anda ada yang hilang dan menghentikan eksekusi skrip Anda.
Akhirnya, perhatikan bahwa membuat struktur dict argumen Anda menggunakan varsfungsi, jika itu membuat hidup Anda lebih mudah.
args = parser.parse_args()
argsdict = vars(args)
print argsdict['my_foo']
print argsdict['bar_value']
Seperti yang Anda lihat, varsmengembalikan dikt dengan nama argumen Anda sebagai kunci dan nilainya sebagai, eh, nilai.
Ada banyak opsi dan hal lain yang dapat Anda lakukan, tetapi ini harus mencakup skenario penggunaan yang paling esensial dan umum.
sys.argvargumen yang Anda inginkan ...