【发布时间】:2019-06-08 05:19:16
【问题描述】:
我有一个脚本,它在 excel 文件中获取一些数据并对其进行排序,并为一些关键内容添加一些颜色...... 我使用的是外部 .ini 文件,因为它有时需要根据用户当天的需求进行更改
ini文件基本上是这样的
[section]
#Color 1
color01 = ('00FCC84E')
cat1 = ('Item1','Item2')
#Color 2
color02 = ('00F4426E')
cat2 = ('Thingy Size 5/16')
使用配置解析器的我的脚本部分执行此操作
import configparser
from configparser import ConfigParser
from ast import literal_eval
config = ConfigParser()
config.read("MyFile.ini")
config.sections()
def variables(section):
dict1 = {}
options = config.options(section)
for option in options:
try:
dict1[option] = config.get(section, option)
if dict1[option] == -1:
DebugPrint("skip: %s" % option)
except:
print("exception on %s!" % option)
dict1[option] = None
return dict1
color01V = literal_eval(config['ConfigFile']['color01'])
color02V = literal_eval(config['ConfigFile']['color02'])
cat01V = literal_eval(config['ConfigFile']['cat1'])
cat02V = literal_eval(config['ConfigFile']['cat2'])
print(cat01V)
print(cat02V)
返回
('Item1','Item2')
Thingy Size 5/16
为什么返回的第二个字符串没有 () 以及如何修复它。
我实际上需要在以后使用变量时出现 ()
【问题讨论】:
-
这是因为您使用的
literal_eval()需要/需要 Python 语法。您在 .ini 文件中使用了cat2 = ('Thingy Size 5/16',),表达式将计算为一个项目的tuple:('Thingy Size 5/16',)。
标签: python configparser