用yaml格式的文件做配置文件

2019-11-06  本文已影响0人  昵称违法

yaml的知识,自行百度。
本文涉及:yaml文件制作,读取、修改、保存

配置文件内容:C:/缓存数据/winCelue03.yaml

date_start_list_v:            #注释说明
    - '2016-01-01'
    - '2017-01-01'
    - '2018-01-01'
    - '2019-01-01'
    - '2016-01-01'      
date_end_list_v:             #注释说明
    - '2016-12-31'
    - '2017-12-31'
    - '2018-12-31'
    - '2019-12-31'
    - '2019-12-31'
plan_v:                           #注释说明
    'a'                                   
isDisplay_v:                    #注释说明
    False                            
money_begin_v:            #注释说明   
    10000000                        
percent_kc_v :                #注释说明
    '1/4'
qihuoList_v:                    #注释说明
    - '甲醇'
    - '焦炭'
    - '塑料'
    - 'IF300'
    - '螺纹钢'
    - '棕榈油'
    - '铜'
config_file_path_v:          #注释说明
    'E:/data/跳空缺口/配置文件/涨停策略模板.xls'
factor_file_path_v:           #注释说明
    'E:/data/跳空缺口/配置文件/分布系数.xls'
daPan_file_path_v:           #注释说明  
    'E:/data/qihuo/shangzhengzhishu/上证指数.xls'
result_save_directory_v:   #注释说明
    'C:/缓存数据'    
kline_directory_v:             #注释说明
    'E:/data/跳空缺口/14个商品期货主力连续合约K线'

读取配置文件:

#yaml配置文件.yaml
import sys
import yaml

#读取yaml格式的配置文件
def read_yaml_config(file_path):
    """
    file_path:文件路径及名字
    """
    f = open(file_path,encoding='utf-8')
    config = yaml.load(f,Loader=yaml.FullLoader)
    print(f.close())
    return config

file_path = 'C:/缓存数据/winCelue03.yaml'
content = read_yaml_config(file_path)
for k,v in content.items():
    print(f"type of k is {type(k)}  type of v is {type(v)}")
    print(k,v)

读取的配置文件为:

None
type of k is <class 'str'>  type of v is <class 'str'>
config_file_path_v E:/data/跳空缺口/配置文件/涨停策略模板.xls
type of k is <class 'str'>  type of v is <class 'str'>
daPan_file_path_v E:/data/qihuo/shangzhengzhishu/上证指数.xls
type of k is <class 'str'>  type of v is <class 'list'>
date_end_list_v ['2016-12-31', '2017-12-31', '2018-12-31', '2019-12-31', '2019-12-31']
type of k is <class 'str'>  type of v is <class 'list'>
date_start_list_v ['2016-01-01', '2017-01-01', '2018-01-01', '2019-01-01', '2016-01-01']
type of k is <class 'str'>  type of v is <class 'str'>
factor_file_path_v E:/data/跳空缺口/配置文件/分布系数.xls
type of k is <class 'str'>  type of v is <class 'bool'>
isDisplay_v False
type of k is <class 'str'>  type of v is <class 'str'>
kline_directory_v E:/data/跳空缺口/14个商品期货主力连续合约K线
type of k is <class 'str'>  type of v is <class 'int'>
money_begin_v 10000000
type of k is <class 'str'>  type of v is <class 'str'>
percent_kc_v 1/4
type of k is <class 'str'>  type of v is <class 'str'>
plan_v a
type of k is <class 'str'>  type of v is <class 'list'>
qihuoList_v ['甲醇', '焦炭', '塑料', 'IF300', '螺纹钢', '棕榈油', '铜']
type of k is <class 'str'>  type of v is <class 'str'>
result_save_directory_v C:/缓存数据
type of k is <class 'str'>  type of v is <class 'int'>

修改配置文件:

content['年龄'] = 119  #增加【年龄】内容

保存配置文件:

#保存yaml文件
def save_yaml_config(file_path,yaml_config):
    """
    file_path:文件路径及文件名
    yaml_config:yaml内容{dict type}
    """
    f = open(file_path,'w')
    yaml.dump(yaml_config,f)
    f.close()

save_yaml_config(file_path,content)  

读取并查看

content = read_yaml_config(file_path)
for k,v in content.items():
    print(f"type of k is {type(k)}  type of v is {type(v)}")
    print(k,v)

读取的内容:

None
type of k is <class 'str'>  type of v is <class 'str'>
config_file_path_v E:/data/跳空缺口/配置文件/涨停策略模板.xls
type of k is <class 'str'>  type of v is <class 'str'>
daPan_file_path_v E:/data/qihuo/shangzhengzhishu/上证指数.xls
type of k is <class 'str'>  type of v is <class 'list'>
date_end_list_v ['2016-12-31', '2017-12-31', '2018-12-31', '2019-12-31', '2019-12-31']
type of k is <class 'str'>  type of v is <class 'list'>
date_start_list_v ['2016-01-01', '2017-01-01', '2018-01-01', '2019-01-01', '2016-01-01']
type of k is <class 'str'>  type of v is <class 'str'>
factor_file_path_v E:/data/跳空缺口/配置文件/分布系数.xls
type of k is <class 'str'>  type of v is <class 'bool'>
isDisplay_v False
type of k is <class 'str'>  type of v is <class 'str'>
kline_directory_v E:/data/跳空缺口/14个商品期货主力连续合约K线
type of k is <class 'str'>  type of v is <class 'int'>
money_begin_v 10000000
type of k is <class 'str'>  type of v is <class 'str'>
percent_kc_v 1/4
type of k is <class 'str'>  type of v is <class 'str'>
plan_v a
type of k is <class 'str'>  type of v is <class 'list'>
qihuoList_v ['甲醇', '焦炭', '塑料', 'IF300', '螺纹钢', '棕榈油', '铜']
type of k is <class 'str'>  type of v is <class 'str'>
result_save_directory_v C:/缓存数据
type of k is <class 'str'>  type of v is <class 'int'>
年龄 119
上一篇下一篇

猜你喜欢

热点阅读