小编Kyu*_*thu的帖子

不明白这个 ConfigParser.InterpolationSyntaxError

所以我试图为我的脚本编写一个小的配置文件,它应该指定一个 IP 地址、一个端口和一个 URL,这些文件应该通过使用前者到变量的插值来创建。我的config.ini看起来像这样:

[Client]
recv_url : http://%(recv_host):%(recv_port)/rpm_list/api/
recv_host = 172.28.128.5
recv_port = 5000
column_list = Name,Version,Build_Date,Host,Release,Architecture,Install_Date,Group,Size,License,Signature,Source_RPM,Build_Host,Relocations,Packager,Vendor,URL,Summary
Run Code Online (Sandbox Code Playgroud)

在我的脚本中,我解析这个配置文件如下:

config = SafeConfigParser()
config.read('config.ini')
column_list = config.get('Client', 'column_list').split(',')
URL = config.get('Client', 'recv_url')
Run Code Online (Sandbox Code Playgroud)

如果我运行我的脚本,这会导致:

config = SafeConfigParser()
config.read('config.ini')
column_list = config.get('Client', 'column_list').split(',')
URL = config.get('Client', 'recv_url')
Run Code Online (Sandbox Code Playgroud)

我试过调试,结果又给了我一行错误代码:

Traceback (most recent call last):
  File "server_side_agent.py", line 56, in <module>
    URL = config.get('Client', 'recv_url')
  File "/usr/lib64/python2.7/ConfigParser.py", line 623, in get
    return self._interpolate(section, option, value, d)
  File "/usr/lib64/python2.7/ConfigParser.py", line 691, in _interpolate
    self._interpolate_some(option, L, …
Run Code Online (Sandbox Code Playgroud)

python configparser string-interpolation

3
推荐指数
1
解决办法
2734
查看次数