python处理文件其实python处理文本的好像不如perl,但是python用的多了要把一个文件转为xml文件,php内容'arp_table' => 'ip,mac,if_name' ,'interface_sub' => 'name,type' ,'default_gate' => 'gate_ip,oif' ,'arp_mac' => 'name', 'bridge_interface' => 'name,group_num', 'loop_interface' => 'name',转为<arp_table> <pk>ip</pk> <pk>mac</pk> <pk>if_name</pk></arp_table><interface_sub> <pk>name</pk> <pk>type</pk></interface_sub><default_gate> <pk>gate_ip</pk> <pk>oif</pk></default_gate><arp_mac> <pk>name</pk></arp_mac><bridge_interface> <pk>name</pk> <pk>group_num</pk></bridge_interface><loop_interface> <pk>name</pk></loop_interface>python代码很简单#!/usr/bin/env pythonimport string,reimport sys sys.stdout=open('xmldb.txt','w') filename="da.txt"try: fp = open(filename) pat = re.compile("'.+?'") for line in fp.readlines(): m=re.findall(pat,line) flag=0 for n in m: n=n.replace("'","") if(flag==0): print "<"+n+">" flag=flag+1 else: p=n.split(",") for q in p: print " <pk>"+q+"</pk>" back=m[0] back=back.replace("'","") print "</"+back+">" del line except IOError, error: print "problem while reading %s: %s" % (filename, error)
注意pat = re.compile("'.+?'")这里是.+?非贪婪算法,'arp_table' => 'ip,mac,if_name'得到'arp_table' 和'ip,mac,if_name',如果是.*是贪婪算法,是'arp_table' => 'ip,mac,if_name' |