基础读取配置文件
- read(filename) 直接读取文件内容
- sections() 得到所有的section,并以列表的形式返回
- options(section) 得到该section的所有option
- items(section) 得到该section的所有键值对
- get(section,option) 得到section中option的值,返回为string类型
- getint(section,option) 得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数。
基础写入配置文件
- write(fp) 将config对象写入至某个 .init 格式的文件 Write an .ini-format representation of the configuration state.
- add_section(section) 添加一个新的section
- set( section, option, value) 对section中的option进行设置,需要调用write将内容写入配置文件 ConfigParser2
- remove_section(section) 删除某个 section
- remove_option(section, option) 删除某个 section 下的 option
flickr.ini
文件内容:
[Graph_Data]
train_graph_file = GraphData/flickr-train.mat
;uncomment this if you want to check link prediction
;origin_graph_file = GraphData/flickr.mat
;uncomment this if you want to check classification
;label_file = GraphData/blogCatalog3-groups.txt
[Output]
;display the performance in every 5 epochs
display = 5
embedding_filename = flickr
;the K for precision@k
check_reconstruction = 10,100,500,1000,10000
;uncomment this if you want to check link prediction
;check_link_prediction = 10,100,500,1000,10000
;uncomment this if you want to check classification
;check_classification = yes
[Model_Setup]
;you can restore the model from an old one.
restore_model = ./result/flickr_old.model
;the struct of the network, the -1 will be replaced with N automatically.
struct = -1,100
;the loss func is // gamma * L1 + alpha * L2 + reg * regularTerm //
alpha = 100
gamma = 1
reg = 1
;the weight balanced value to reconstruct non-zero element more.
beta = 50
batch_size = 16
epochs_limit = 100
learning_rate = 0.01
dbn_epochs = 500
dbn_batch_size = 64
dbn_learning_rate = 0.1
;negative sample ratio
;if you want to do negative sampling, you should load data from txt file instead of mat file.
ng_sample_ratio = 0.0
- 代码:
import configparser
cf = configparser.ConfigParser()
# cf.read("test.conf")
cf.read("flickr.ini")
['flickr.ini']
#return all section
secs = cf.sections()
print("sections: ", secs, type(secs))
sections: ['Graph_Data', 'Output', 'Model_Setup'] <class 'list'>
opts = cf.options("Output")
print("options :", opts, type(opts))
options : ['display', 'embedding_filename', 'check_reconstruction'] <class 'list'>
kvs = cf.items("Output")
print("Output: ", kvs, type(kvs) , type(kvs[0]))
Output: [('display', '5'), ('embedding_filename', 'flickr'), ('check_reconstruction', '10,100,500,1000,10000')] <class 'list'> <class 'tuple'>
#read by type
cf.get("Output","embedding_filename") #返回字符串
'flickr'
cf.get("Output","check_reconstruction")
'10,100,500,1000,10000'