The argparse
dokumentasi 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 Namespace
objek 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 argparse
menggantikan '-' 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 argparse
akan memberi tahu Anda ada yang hilang dan menghentikan eksekusi skrip Anda.
Akhirnya, perhatikan bahwa membuat struktur dict argumen Anda menggunakan vars
fungsi, 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, vars
mengembalikan 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.argv
argumen yang Anda inginkan ...