2015-12-07 2 views
0

Мне нужен скрипт, который может принимать входные данные через командную строку. Вход будет именем файла, и он будет вводить ввод по умолчанию, если вход не указан. Сценарий также проверяет наличие файла.Как обрабатывать параметры ввода командной строки в python?

Название сценария: wrapper.py

входной пример:

python wrapper.py -config abc.txt 

моя попытка:

import argparse 
commandLineArgumentParser = argparse.ArgumentParser() 
commandLineArgumentParser.add_argument("-config", "--configfile", help="first Name") 
config = commandLineArguments.configfile 
+0

Используйте Getopt свой стандартный пакет библиотеки для вашего требования. –

+0

@Prashant Нет ничего плохого в argparse, который Arijit уже использует. – zvone

+1

@Arijit Какая часть вызывает у вас неприятности? Как получить конфигурационный файл из ввода и иметь значение по умолчанию? Или как передать переменную в ConfigParser? – zvone

ответ

0

Вы должны поставить вам код, который загружает конфигурацию в функцию , Затем вы должны передать ему имя файла и вернуть все данные конфигурации.

Итак, начнем с:

def read_configuration_from_file(filename): 
    config_parser = ConfigParser.ConfigParser() 
    config_parser.read(filename) 

После того, как вы читаете информацию из config_parser, вы должны выяснить, как вернуть конфигурацию. Есть много вариантов. Вы можете вернуть словарь или создать собственный объект, содержащий конфигурацию.

Вариант 1 (словарь):

return {'first_name': first_name, 'last_name': last_name} 

Вариант 2 (конфигурация класса данных):

class ConfigurationData(object): 
    def __init__(self, first_name, last_name): 
     self.first_name = first_name 
     self.last_name = last_name 

, а затем вы просто return ConfigurationData(first_name=first_name, last_name=last_name).

Вы также можете объединить все это и сделать чтения функции часть класса:

class ConfigurationData(object): 
    def __init__(self, first_name, last_name): 
     self.first_name = first_name 
     self.last_name = last_name 

    @staticmethod 
    def read_configuration_from_file(filename): 
     config_parser = ConfigParser.ConfigParser() 
     config_parser.read(filename) 
     ... 
     return ConfigurationData(first_name=first_name, last_name=last_name) 
Смежные вопросы