python:常用功能之文本处理

前言

创新互联专注于康县网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供康县营销型网站建设,康县网站制作、康县网页设计、康县网站官网定制、小程序设计服务,打造康县网络公司原创品牌,更为您提供康县网站排名全网营销落地服务。

在生活、工作中,python一直都是一个好帮手。在python的众多功能中,我觉得文本处理是最常用的。下面是平常使用中的一些总结。环境是python 3.3

0. 基础

在python中,使用str对象来保存字符串。str对象的建立很简单,使用单引号或双引号或3个单引号即可。例如:

 
 
 
  1. s='nice'      #output: nice 
  2. s="nice"      #output: nice 
  3. s="Let's go"  #output: Let's go 
  4. s='"nice"'    #output: "nice" 
  5. s=str(1)      #output: 1 
  6. s='''''nice 
  7. day'''        #output: nice 
  8.               #output: day 

在python中,\n代表换行符,\t代表tab键

在python中,引用str中的某一段的内容很容易。例如:

 
 
 
  1. s='123456789' 
  2. s[0]          #***个字符:     output: 1 
  3. s[-1]         #倒数***个字符: output: 9 
  4. s[:2]         #前2个字符:     output: 12 
  5. s[-2:]        #后2个字符:     output: 89 
  6. s[2:-2]       #去掉前2个和后2个剩余的字符 output:34567 

在python中,判断某一字符串是否在另一个字符串中:

 
 
 
  1. 'nice' in 'nice day' #output :True 

task 1. 按照某种格式生产字符串

在python中,str对象有一个方法用于实现这种功能,这个方法是:str.format(*args,**kwargs)。例子:

 
 
 
  1. '1+2={0}'.format(1+2)  #{0}是占位符,其中0表示是***个需要被替换的。output: 1+2=3 
  2. '{0}:{1}'.format('nice','day') #{0},{1}是占位符,{0}指***被替换,替换成nice,{1}第二个被替换,替换成day。output:nice:day 

实际用途:

我的手机拍照之后,手机的命名如下:

 
 
 
  1. IMG_20130812_145732.jpg 
  2. IMG_20130812_144559.jpg 

在电脑中,会根据相片的日期放到不同的文件夹,文件夹命名如下:

 
 
 
  1. 2013-08-10 
  2. 2013-08-12 

所以说,要对相片的命名进行一个转换,这样才能映射到相应的文件夹转。代码如下:

 
 
 
  1. def getName(name): 
  2.     return '{0}-{1}-{2}'.format(name[4:8],name[8:10],name[10:12]) 
  3.  
  4. getName('IMG_20130812_145732.jpg')  #output: 2013-08-12 

task 2. 替换字符串中的某一部分

替换有2中方法,一种是使用str对象自带的方法replace(),另一种是使用re模块中sub(0的。例如:

 
 
 
  1. #replace 
  2. s='nice day' 
  3. s.replace('nice','good')    #s本身不改变,但会返回一个字符串:output: good day 
  4.  
  5. #sub 
  6. import re 
  7. s='cat1 cat2 cat3 in the xxx' 
  8. re.sub('cat[0-9]','CAT',s)  #s本身不改变,但会返回一个字符串:output: CAT CAT CAT in the xxx 

对于re模块中的sub,需要了解正则表达式。

task 3. 拆分字符串

Excel可以到处逗号分隔符格式的文件。对于这样的字符串,我们可以把它拆成相应的字段。实现这个功能,主要使用str对象的自带方法split。例如:

 
 
 
  1. s='one,two,three' 
  2. s.split(',')                            #output: ['one', 'two', 'three'] 

task 4. 合并字符串

除了拆分功能之外,我们可以将拆分好的字段合并成一个字符串。实现这个功能,主要使用str对象自带的方法join。例如:

 
 
 
  1. l=['one', 'two', 'three'] 
  2. ','.join(l)                                #output: one,two,three 

这个功能还可以在this模块中看到。

task 5. 整合

关于字符串的操作有很多。如果仅仅对一两行字符串进行操作,显示不出他的威力。在工作中,有可能会对文档进行处理,有的文档很大,手工的方式不好处理,这时,python就有用武之地。

例如,从数据库中导出一个表table_1的数据,导出来的数据格式如下:

 
 
 
  1. insert into table_1(field1,filed2,field3) 
  2. values(value1,value2,value3); 
  3. ... 
  4. insert into table_1(field1,filed2,field3) 
  5. values(value1,value2,value3); 

数据生成的文件的大小大概为700M。要把这个表的数据导入到另一个数据库的表table_2中,table_1和table_2的表结构相同,仅仅是名字不同。这时,我们可以写一个python脚本,将table_1替换成table_2。例如:

 
 
 
  1. path_in='table1.data' 
  2. path_out='table2.data' 
  3. f_in=open(path_in) 
  4. f_out=open(path_out,'w') 
  5. for i in f_in.readlines(): 
  6.     if 'insert into table_1(field1,filed2,field3)' in i: 
  7.         f_out.write(i.repalce('tabel_1','table_2')) 
  8.     else: 
  9.         f_out.write(i) 
  10. f_in.close() 
  11. f_out.close() 

结束语

使用python,让日常工作多了一个工具,多了一个选择。可以将一些重复的工作交给机器做,节省时间,提高效率。

原文链接:http://www.cnblogs.com/ola2010/p/3266366.html

网页题目:python:常用功能之文本处理
网站链接:http://www.shufengxianlan.com/qtweb/news33/34533.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联