需求:
对一个配置文件进行处理,拿出可用的字符来拼接,下面是原始文本,我们要得到这样的结果,
复制代码 代码如下:
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 os
file=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\”]