python首次接触+简单处理文本
最近因为游戏项目中SCML资源中有许多的无意义数据需要清除,所以选择使用python脚本来处理。
简单介绍下python
python 简单说就是一个通用的脚本语言,具有 简单,易学,跨平台,开源免费等特点。具体可见:http://sebug.net/paper/python/
语法也和大部分语言类似,很容易上手。
下面是今天简单写的一个例子:
1 #!/usr/bin/python 2 # -*- coding:utf-8 -*- 3 import os,re 4 currentdir = os.getcwd(); 5 currentdir = currentdir+os.sep; 6 print currentdir; 7 8 files = os.listdir(currentdir); 9 for tmpfile in files: 10 tmpfilepath = currentdir+tmpfile; 11 if tmpfile.endswith(".SCML"): 12 print "begin modify:"+tmpfile 13 fileptr=open(tmpfilepath); 14 outfile=file(currentdir+'_'+tmpfile,'w'); 15 strinfo_color = re.compile('<color>16777215</color>'); 16 strinfo_xflip = re.compile('<xflip>0</xflip>'); 17 strinfo_yflip = re.compile('<yflip>0</yflip>'); 18 strinfo_opacity = re.compile('<opacity>100.00000</opacity>'); 19 strinfo_x = re.compile('<x>0.00000</x>'); 20 strinfo_y = re.compile('<y>0.00000</y>'); 21 strinfo_angle = re.compile('<angle>-0.00000</angle>'); 22 strinfo_angle2 = re.compile('<angle>0.00000</angle>'); 23 for eachline in fileptr: 24 if len(eachline) > 0: 25 eachline = strinfo_color.sub('',eachline); 26 eachline = strinfo_xflip.sub('',eachline); 27 eachline = strinfo_yflip.sub('',eachline); 28 eachline = strinfo_opacity.sub('',eachline); 29 eachline = strinfo_x.sub('',eachline); 30 eachline = strinfo_y.sub('',eachline); 31 eachline = strinfo_angle.sub('',eachline); 32 eachline = strinfo_angle2.sub('',eachline); 33 if len(eachline) > 0: 34 outfile.write(eachline); 35 pass 36 pass 37 pass 38 pass 39 outfile.close(); 40 print "finished modify:"+tmpfile;
代码没有写成函数式的,就是通过os.getcwd()获取到当前目录,然后files = os.listdir(currentdir); 获取到所有目录下的子文件名,接着在打开每个.SCML文件,然后读取每行如果不符合规则的数据就使用使用''代替,再写入到另外一个文件中。因为对正则一直不熟悉所以只是使用了简单比较方式。
浙公网安备 33010602011771号