需求:
对一个配置文件进行处理,拿出可用的字符来拼接,下面是原始文本,我们要得到这样的结果,
redis -h 127.0.0.1 -p 6379 | select 2 redis -h 127.0.0.1 -p 6379 | select 16 redis -h 127.0.0.1 -p 6379 | select 8
原始文本:
'redis_list' => array( 'normal' => array( 'host' => '10.4.3.125', 'port' => 6405, 'db' => 6 ), 'redis_list' => array( 'normal' => array( 'host' => '127.0.0.1', 'port' => 6379, 'db' => 2 ), 'redis_list' => array( 'normal' => array( 'host' => '127.0.0.1', 'port' => 6379, 'db' => 16 ), 'redis_list' => array( 'normal' => array( 'host' => '127.0.0.1', 'port' => 6379, 'db' => 8 ),
上python:
#!/usr/bin/env python #coding=utf-8 import osfile=open("redis_list.txt", "r") file_content=file.read() php_array=file_content.replace("'normal' => array(","") pstr = php_array.replace(" ","").replace("\r","").replace("\n", "").replace("\t", "").replace("(", "").replace("'", "").replace("),", "") #print pstr pstr_list = pstr.split("redis_list=>array") #print type(pstr_list)
cf_param = [] for i in pstr_list: if i: ## 'host'=>'127.0.0.1','port'=>6411,'db'=>2 i_list = i.split(",") if len(i_list)==3: op = {}; for ii in i_list: ii_list = ii.split("=>") if len(ii_list) == 2: op[ii_list[0]] = ii_list[1] cf_param.append(op)
for i in cf_param: print "redis -h "+i["host"] + " -p "+i["port"] +"|select" +" "+i["db"]
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。