Python程序设计开发宝典
上QQ阅读APP看书,第一时间看更新

1.10 从命令行参数和配置文件获取信息

实际开发中,很多时候需要从外部获取数据,根据用户的输入或配置信息来决定下一步应采取的行为。除了使用内置函数input()或者GUI库的控件和对话框来接收用户输入以外,还可以使用sys和argparse模块来接收命令行参数,使用configparser模块从外部配置文件中获取信息。

sys模块的argv是一个包含若干字符串的列表,用来接收命令行参数,其中第一个元素argv[0]是程序本身的名字,后面其他元素是用户输入的其他参数。在输入时,多个命令行参数之间使用空格分隔。使用argparse模块接收并解析命令行参数的内容请参考第12章使用多线程批量复制文件的示例代码。

如果某个程序需要配置大量信息,那么可以把与程序有关的这些信息单独存放到一个配置文件中,这样就不用重复输入了,并且可以在不修改代码的前提下改变代码的行为,只需要提供不同的配置文件即可。configparser模块提供了非常方便的配置文件读取接口,假设配置文件test.ini的内容如下:

    [DEFAULT]
    default1=0
    default2=1
    default3=% (name)s, % (age)s, % (sex)s
    name=default
    age=18
    sex=M

    [SECTION1]
    name=dong
    age=39
    sex=M
    addr=yantai

    [SECTION2]
    name=zhang
    age=40
    sex=F
    weight=50

那么可以通过下面的代码来读取和显示配置文件中的信息:

    import configparser


    conf=configparser.ConfigParser()
    conf.read('test.ini')
    print(conf.get('SECTION1', 'age'))
    print(conf.get('SECTION2', 'sex'))
    #使用SECTION1节中的信息替换DEFAULT节中的default3变量
    print(conf.get('SECTION1', 'default3'))
    print(conf.get('SECTION2', 'default3'))
    print(conf.get('DEFAULT', 'default3'))