上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'))