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文件,然后读取每行如果不符合规则的数据就使用使用''代替,再写入到另外一个文件中。因为对正则一直不熟悉所以只是使用了简单比较方式。

 

 
 
 
 

posted on 2012-12-05 23:13  Ryan_Y  阅读(497)  评论(2)    收藏  举报