如何在python中处理命令行输入选项?

时间:2015-12-07 07:34:27

标签: 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

1 个答案:

答案 0 :(得分: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)