parameter baris perintah Python3
parameter baris perintah Python3
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/python3 import sys print ('参数个数为:', len(sys.argv), '个参数。') print ('参数列表:', str(sys.argv))
Pelaksanaan kode di atas, output adalah:
$ python3 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/python3 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:
$ python3 test.py -h usage: test.py -i <inputfile> -o <outputfile> $ python3 test.py -i inputfile -o outputfile 输入的文件为: inputfile 输出的文件为: outputfile