Latest web development tutorials

аргументы командной строки Python

аргументы командной строки Python

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

$ python test.py arg1 arg2 arg3

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

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

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

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

примеров

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

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import sys

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

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

$ python 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/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:])

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

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

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