Latest web development tutorials

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