Latest web development tutorials

Параметры командной строки python3

Параметры командной строки python3

Python предоставляетGetopt модуль , чтобы получить аргументы командной строки.

$ python test.py arg1 arg2 arg3

Python также может быть использован вSYS sys.argv, чтобы получить аргументы командной строки:

  • sys.argv приведен список параметров командной строки.

  • Len (sys.argv) это количество аргументов командной строки.

Примечание: sys.argv [0] указывает на имя сценария.

примеров

test.py код файла выглядит следующим образом:

#!/usr/bin/python3

import sys

print ('参数个数为:', len(sys.argv), '个参数。')
print ('参数列表:', str(sys.argv))

Реализация указанного выше кода, выход:

$ python3 test.py arg1 arg2 arg3
参数个数为: 4 个参数。
参数列表: ['test.py', 'arg1', 'arg2', 'arg3']

Getopt модуль

Getopt модуль параметры командной строки выделенный модуль обработки, используемые для получения параметров командной строки и параметры, является sys.argv. Опция командной строки делает программу более гибкие параметры. Поддержка режима короткий вариант (-) и длинные опции режима (-).

Модуль предоставляет два метода и обработчик исключений для разбора аргументов командной строки.

getopt.getopt метод

getopt.getopt методы разбора командной строки списка параметров синтаксис выглядит следующим образом:

getopt.getopt(args, options[, long_options])

Параметры метода:

  • арг: Для разбора списка аргументов командной строки.

  • опции: определить строку формата, параметрыдвоеточие после (:) указывает на то, что эта опция должна иметь дополнительные параметры, без толстого кишечника указывает на то, что этот вариант не дополнительные параметры.

  • long_options: определить формат списка,long_options после знака равенства (=) говорит , что , если этот параметр установлен, должен быть дополнительные параметры, или нет дополнительные параметры.

  • Этот метод возвращает значение состоит из двух элементов: первый является(опция, значение) кортежи.Во-вторых, список параметров, в том числе те, которые не параметр '- -' или ''.

Другой метод getopt.gnu_getopt, не так много, чтобы сделать здесь описано.


Исключение getopt.GetoptError

Не найден в списке параметров или опций нужный параметр вызывает исключение пуст.

Исключение аргумент является строкой, которая представляет собой ошибку. Сообщение об ошибке , связанные опции ивыбрать для атрибута MSG.

примеров

Предположим, что мы создаем такой сценарий, вы можете передать две строки в командный файл сценария имя файла, в то время как мы используем другой вариант для просмотра сценария. Используйте следующий сценарий:

usage: test.py -i <inputfile> -o <outputfile>

test.py код файла выглядит следующим образом:

#!/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:])

Реализация указанного выше кода, выход:

$ python3 test.py -h
usage: test.py -i <inputfile> -o <outputfile>

$ python3 test.py -i inputfile -o outputfile
输入的文件为: inputfile
输出的文件为: outputfile