python常用文本处理功能

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

0. 基础

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

s='nice' #output: nice
s="nice" #output: nice
s="Let's go" #output: Let's go
s='"nice"' #output: "nice"
s=str(1) #output: 1
s='''nice
day''' #output: nice
#output: day

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

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

s='123456789'
s[0] #第一个字符: output: 1
s[-1] #倒数第一个字符: output: 9
s[:2] #前2个字符: output: 12
s[-2:] #后2个字符: output: 89
s[2:-2] #去掉前2个和后2个剩余的字符 output:34567

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

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

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

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

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

实际用途:

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

IMG_20130812_145732.jpg
IMG_20130812_144559.jpg

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

2013-08-10
2013-08-12

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

def getName(name):
return '{0}-{1}-{2}'.format(name[4:8],name[8:10],name[10:12])

getName('IMG_20130812_145732.jpg') #output: 2013-08-12

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

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

#replace
s='nice day'
s.replace('nice','good') #s本身不改变,但会返回一个字符串:output: good day

#sub
import re
s='cat1 cat2 cat3 in the xxx'
re.sub('cat[0-9]','CAT',s) #s本身不改变,但会返回一个字符串:output: CAT CAT CAT in the xxx

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

task 3. 拆分字符串

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

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

task 4. 合并字符串

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

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

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

task 5. 整合

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

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

insert into table_1(field1,filed2,field3)
values(value1,value2,value3);
...
insert into table_1(field1,filed2,field3)
values(value1,value2,value3);

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

path_in='table1.data'
path_out='table2.data'
f_in=open(path_in)
f_out=open(path_out,'w')
for i in f_in.readlines():
if 'insert into table_1(field1,filed2,field3)' in i:
f_out.write(i.repalce('tabel_1','table_2'))
else:
f_out.write(i)
f_in.close()
f_out.close()

结束语

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

python常用文本处理功能相关推荐

  1. python实现文本读写功能

    事情是这样的,最近博主在做一个测量接收机RTK定位精度的实验,在野外采集到的数据是NMEA的GPGGA格式的定位信息,需要将其转换为处理软件需要用到的格式,因此编写了一个小的转换程序,下面详细介绍: ...

  2. python 实现文本自动翻译功能

    在编程生活中,有的时候我们需要实现翻译功能. 如我们训练的是中文句子,我们需要将结果变成英文. 示例 首先,下载包,pip install translate #!/usr/bin/env pytho ...

  3. python常用文本处理方法小结

    A B C 1 迭代器计数' 'collections.Counter() collections.Counter()是一个计数器,可以用来计数一个迭代器(字符串,列表,set)中每个字符出现的次数 ...

  4. python实现文本编辑器_Python实现文本编辑器功能实例详解

    这篇文章主要介绍了Python实现的文本编辑器功能,结合实例形式详细分析了基于wxpython实现文本编辑器所需的功能及相关实现技巧,需要的朋友可以参考下 本文实例讲述了Python实现的文本编辑器功 ...

  5. python词频统计西游记实验报告_Python文本统计功能之西游记用字统计操作示例

    本文实例讲述了Python文本统计功能之西游记用字统计操作.分享给大家供大家参考,具体如下: 一.数据 xyj.txt,<西游记>的文本,2.2MB 致敬吴承恩大师,4020行(段) 二. ...

  6. python常用代码总结-Python常用功能函数系列总结(一)

    本节目录 常用函数一:获取指定文件夹内所有文件 常用函数二:文件合并 常用函数三:将文件按时间划分 常用函数四:数据去重 写在前面 写代码也有很长时间了,总觉得应该做点什么有价值的事情,写代码初始阶段 ...

  7. python公众号留言功能_Python实现的微信公众号群发图片与文本消息功能实例详解...

    本文实例讲述了Python实现的微信公众号群发图片与文本消息功能.分享给大家供大家参考,具体如下: 在微信公众号开发中,使用api都要附加access_token内容.因此,首先需要获取access_ ...

  8. 【python 文本翻译】python文本翻译功能

    从一种语言到另一种语言的文本翻译在各种网站中越来越普遍. 帮助我们执行此操作的python包称为translate. 可以通过以下方式安装此软件包. 它提供主要语言的翻译. 官网:https://py ...

  9. python统计西游记人物名字出现次数_Python文本统计功能之西游记用字统计操作

    这篇文章主要介绍了Python文本统计功能之西游记用字统计操作,结合实例形式分析了Python文本读取.遍历.统计等相关操作技巧,需要的朋友可以参考下 本文实例讲述了Python文本统计功能之西游记用 ...

最新文章

  1. 【心塞】因为一个低级错误,生产数据库崩溃了将近半个小时
  2. 面向对象编程学习5月7日-5月23日 网络直播yii-外企使用最多的PHP框架
  3. 在centOS7.2里安装virtualenv和flask
  4. linux mysql 集群安装配置_linux下mysql集群的安装
  5. CPU的乱序执行、指令流水线技术
  6. DCMTK3.6.0 (MT支持库)安装 完整说明
  7. 【论文写作】学位论文写作过程中应注意的7个问题,非常实用
  8. TOA定位算法性能仿真
  9. 【SLAM笔记】SLAM概述
  10. Ajax_jquery库中Ajax方法的使用
  11. Java RMI原理与使用
  12. 【译文】Nodejs官方文档(Part 3 断言测试)
  13. 如何使用分区工具实现无损分区大小调整?
  14. 微服务网关SpringCloud Gateway
  15. HTML5制作对联网页,经典的JS对联广告代码
  16. 密码模块安全技术要求
  17. javax.crypto.BadPaddingException: Given final block not properly padded
  18. 上传gitlab ! [remote rejected] dev - dev (pre-receive hook declined)
  19. rockyLinux 初体验PostgreSQL15详细安装教程
  20. android 绑定布局,android – 在数据绑定中设置动态布局高度

热门文章

  1. Host-Base、LAN-Base、LAN-Free、Server-Free存储备份结构
  2. zkcli远程连接_ZooKeeper客户端 zkCli.sh 节点的增删改查
  3. opencv自然背景下交通标志形状分类c++代码_前端革命时刻:前端代码是怎样智能生成的-图像分离篇
  4. MYSQL锁表的用法,防止并发情况下的重复数据
  5. xcode工程间的引用,iOS静态库
  6. C#重写WebBrowser组件,禁止跳转到IE新窗口、脚本错误
  7. android-- apktool反编译工具使用详解
  8. Android手机常见隐藏代码
  9. Chisel3 - Tutorial - Parity
  10. Android中如何提取和生成mp4文件