实际开发中,很多时候需要从外部获取数据,根据用户的输入或配置信息来决定下一步应采取的行为。除了使用内置函数input()或者GUI库的控件和对话框来接收用户输入以外,还可以使用sys和argparse模块来接收命令行参数,使用configparser模块从外部配置文件中获取信息。
sys模块的argv是一个包含若干字符串的列表,用来接收命令行参数,其中第一个元素argv[0]是程序本身的名字,后面其他元素是用户输入的其他参数。在输入时,多个命令行参数之间使用空格分隔。
如果某个程序需要配置大量信息,那么可以把与程序有关的这些信息单独存放到一个配置文件中,这样就不用重复输入了,并且可以在不修改代码的前提下改变代码的行为,只需要提供不同的配置文件即可。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'))
运行结果:
39
F
dong,39,M
zhang,40,F
default,18,M