argumen baris perintah Python
argumen baris perintah Python
Python menyediakan modulgetopt untuk mendapatkan argumen baris perintah.
$ python test.py arg1 arg2 arg3
Python juga dapat digunakandalam sys.argvsys untuk mendapatkan argumen baris perintah:
sys.argv adalah daftar parameter baris perintah.
len (sys.argv) adalah jumlah argumen baris perintah.
CATATAN: sys.argv [0] menunjukkan nama script.
contoh
file kode test.py adalah sebagai berikut:
#!/usr/bin/python # -*- coding: UTF-8 -*- import sys print '参数个数为:', len(sys.argv), '个参数。' print '参数列表:', str(sys.argv)
Pelaksanaan kode di atas, output adalah:
$ python test.py arg1 arg2 arg3 参数个数为: 4 个参数。 参数列表: ['test.py', 'arg1', 'arg2', 'arg3']
modul getopt
Modul getopt adalah parameter baris perintah modul pengolahan khusus digunakan untuk memperoleh opsi baris perintah dan parameter, adalah sys.argv. Baris perintah opsi membuat program parameter yang lebih fleksibel. Mendukung mode pilihan pendek (-) dan opsi panjang modus (-).
Modul ini menyediakan dua metode dan handler pengecualian untuk mengurai argumen baris perintah.
metode getopt.getopt
metode getopt.getopt untuk parsing baris perintah daftar parameter sintaks adalah sebagai berikut:
getopt.getopt(args, options[, long_options])
parameter metode:
args: Untuk mengurai baris perintah daftar argumen.
Pilihan: untuk menentukan format string, pilihanusus setelah (:) menunjukkan bahwa pilihan ini harus memiliki parameter tambahan, tanpa usus besar menunjukkan bahwa pilihan ini tidak parameter tambahan.
long_options: menentukan format daftar,long_options setelah tanda sama dengan (=) mengatakan bahwa jika opsi ini diatur, harus ada parameter tambahan, atau parameter tidak tambahan.
Metode ini mengembalikan nilai terdiri dari dua elemen: yang pertama adalah(pilihan, nilai) tupel.Yang kedua adalah daftar parameter, termasuk mereka yang tidak '-' atau '-' parameter.
Metode lain adalah getopt.gnu_getopt, tidak banyak yang harus dilakukan di sini dijelaskan.
pengecualian getopt.GetoptError
Tidak ditemukan dalam daftar parameter, atau opsi parameter yang diinginkan memicu pengecualian kosong.
Argumen pengecualian adalah string yang mewakili kesalahan. Pilihan terkait pesan kesalahan danmemilih untuk atribut msg.
contoh
Misalkan kita membuat script seperti itu, Anda dapat melewati dua baris ke file script perintah nama file, sementara kami menggunakan pilihan lain untuk melihat script. Menggunakan script berikut:
usage: test.py -i <inputfile> -o <outputfile>
file kode test.py adalah sebagai berikut:
#!/usr/bin/python # -*- coding: UTF-8 -*- import sys, getopt def main(argv): inputfile = '' outputfile = '' try: opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="]) except getopt.GetoptError: print 'test.py -i <inputfile> -o <outputfile>' sys.exit(2) for opt, arg in opts: if opt == '-h': print 'test.py -i <inputfile> -o <outputfile>' sys.exit() elif opt in ("-i", "--ifile"): inputfile = arg elif opt in ("-o", "--ofile"): outputfile = arg print '输入的文件为:', inputfile print '输出的文件为:', outputfile if __name__ == "__main__": main(sys.argv[1:])
Pelaksanaan kode di atas, output adalah:
$ python test.py -h usage: test.py -i <inputfile> -o <outputfile> $ python test.py -i inputfile -o outputfile 输入的文件为: inputfile 输出的文件为: outputfile