python处理PHP数组文本文件实例

需求:

对一个配置文件进行处理,拿出可用的字符来拼接,下面是原始文本,我们要得到这样的结果,


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"]

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。