python关于分割与拼接的那些事
1.split分割
基于re模块和正则表达式对象的方法split(),以后再做学习
基于字符串的split()方法 :字符串对象的split()方法也只能处理非常简单的情况,而且不支持多个分隔符,对分隔符周围可能存在的空格也无能为力.当需要一些更为灵活的功能是,应该使用re.split()方法.
函数原型:str.split(s,num)[n]
s:表示指定的分隔符,不写的话,默认是空格(’ ‘)。如果字符串中没有给定的分隔符时,则把整个字符串作为列表的一个元素返回。
num:表示分割次数。如果指定了参数num,就会将字符串分割成num+1个子字符串,并且每一个子字符串可以赋给新的变量。
[n]:表示选取第n个分片,n表示返回的list中元素下标,从0开始的。
split()当不带参数时以空格进行分割,不管空格在哪,或者有几个.带参数时,以该参数进行分割。
2.strip()方法用来从字符串的开始和结尾处去掉字符
lstrip()从左侧开始去除字符,默认去除空格符,也可指定其他字符.
rstrip()从右侧开始去除字符,默认去除空格符,也可指定其他字符.
>>>t = '----hello===='
>>>t.lstrip('-')
'hello====='
>>>t.strip('-=')
'hello'
*注意:去除字符的操作不会对位于字符串中间的任何文本起作用
>>>'s = hello world \n'
>>>s = s,strip()
>>>s
'hello world'
如果要对里面的空格执行某些操作,应该使用其他技巧.比如replace()方法或者正则表达式转换.
>>>s.replace(' ','')
'helloworld'
>>>import re
>>>re.sub('\s+',' ',s)
'hello world'
通常会遇到的情况是将去除字符的操作同某些迭代操作结合起来,比如从文件中读取文本行.如果是这样的话,那就到了生成器表达式大显身手的时候了:
with open(filename) as f:
lines = (line.strip() for line in f)
for line in lines:
这里表达式lines = (line.strip() for line in f)的作用是完成数据的转换.即把原始数据中每一行开头和结尾处的空格符去掉.
3.分解文件名的扩展名
a,b = os.path.splitext(fname)
a =
b =
扩展名是通过os.path.splitext函数提取出来的,
- root, extension = os.path.splitext(fname)
这样,fname中的扩展名部分即.py被赋给变量extension,而其余部分则赋给了变量root。如果想得到不带点号的扩展名的话,只需使用os.path.splitext(fname)[1][1:]即可。
假设一个文件名为f,其扩展名随意,若想将其扩展名改为ext,可以使用下面的代码:
- newfile = os.path.splitext(f)[0] + ext
下面是一个具体的示例:
- >>> f = ’/some/path/case2.data_source’
- >>> moviefile = os.path.basename(os.path.splitext(f)[0] + ’.mpg’)
- >>> moviefile
- ’case2.mpg’
4.splitlines用法
splitlines()方法返回一个字符串的所有行, 默认splitelines参数keepends为False,意思是不保留每行结尾的\n, 而keepends为True时,分割的每 一行里尾部会有\n
按行分割字符串,返回值为列表
去掉列表的方法:s1 =s.splitlines()[0]
python关于分割与拼接的那些事的更多相关文章
- 转 python 之 分割参数getopt
python 之 分割参数getopt os下有个方法walk,非常的好用,用来生成一个generator.每次可以得到一个三元tupple,其中第一个为起始路径,第二个为起始路径下的文件夹,第三个是 ...
- 【转】Python微信好友头像拼接图
转自:Python微信好友头像拼接图 今天在朋友圈看到有人发了微信好友拼接图,心里满是新奇,看了下评论才知道用Python写的.心里痒痒,立马就安装了下Python. 安装好了之后,看了下大神的代码, ...
- python入门6 字符串拼接、格式化输出
字符串拼接方式 1 使用 + 拼接字符串 2 格式化输出:%s字符串 %d整数 %f浮点数 %%输出% %X-16进制 %r-原始字符串 3 str.format() 代码如下: #codin ...
- 列表[‘hello’ , ‘python’ ,’!’ ] 用多种方法拼接,并输出’hello python !’ 以及join()在python中的用法简介
列表[‘hello’ , ‘python’ ,’!’ ] 用多种方法拼接,并输出’hello python !’ 使用字符串链接的四种方法都可以创建 字符串拼接一共有四种方法,也可以应用到列表的拼接中 ...
- 女朋友会 Python 是多么可怕的一件事!
阅读文本大概需要 8 分钟. 1 目 标 场 景 女朋友会 Python 是多么可怕的一件事! 一位朋友告诉忽略了一件事,假设女朋友会 Python 的话,那岂不是要翻车?如果是这样的话,女朋友发 ...
- java以逗号为分割符拼接字符串的技巧
java以逗号为分割符拼接字符串的技巧 答: 不用那么多if判断,让人思维混乱,直接到最后使用deleteCharAt方法去除最后一个逗号即可. 实现代码如下所示: StringBuffer sb ...
- python之字符串的分割和拼接
关于string的split 和 join 方法 对导入os模块进行os.path.splie()/os.path.join() 貌似是处理机制不一样,但是功能上一样. 1.string.split( ...
- 【Python】numpy 数组拼接、分割
摘自https://docs.scipy.org 1.The Basics 1.1 numpy 数组基础 NumPy’s array class is called ndarray. ndarray. ...
- Python基础__字符串拼接、格式化输出与复制
上一节介绍了序列的一些基本操作类型,这一节针对字符串的拼接.格式化输出以及复制的等做做详细介绍.一. 字符串的拼接 a = 'I', b = 'love', c = 'Python'. 我们的目的是: ...
随机推荐
- 字符串 中的split 与数组中的join
关于基础,总是隔一段时间,就得看一次,要不不用总是忘,今天又重新看了,一下字符串对象的split,然后就想到了数组对象的join. var str='wo shi yi ge js'; var str ...
- iconfont使用,亲测
iconfont对于前端应用来说有很多便捷: 1.自由变化大小 2.自由修改颜色 3.可以添加一些视觉效果如:阴影.旋转.透明度. 4.兼容IE6 在线引用和下载到本地两种方法 一.在线引用 图标的制 ...
- initialization & finalization
Delphi 的pas文件中可以有initialization和finalization两个关键字, 1.initialization关键字: 在initialization关键字到finalizat ...
- R 单变量重命名与删除
单变量重命名 b = rename(b,c(target="flag")) 单变量删除 b = b[,names(b)!='age'] 或者 b[,"age&quo ...
- Git使用小记
刚刚简答的完成了pureblog,想着先上传导Github上去,等着以后有时间了在完善其功能,所以使用Git上传导Github代码仓库上去,这里简答的记录以下使用小计. 我们首先下载Git,我们使用用 ...
- mysql 主从单库单表同步 binlog-do-db replicate-do-db
方案一:两边做主从. SELECT SUM(DATA_LENGTH)+SUM(INDEX_LENGTH) FROM information_schema.tables WHERE TABLE_SCHE ...
- spring data jpa 调用存储过程
网上这方面的例子不是很多,研究了一下,列出几个调用的方法. 假如我们有一个mysql的存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `plus1in ...
- 使用axis开发web service服务端
一.axis环境搭建 1.安装环境 JDK.Tomcat或Resin.eclipse等. 2.到 http://www.apache.org/dyn/closer.cgi/ws/axis/1_4下载A ...
- NDK笔记(二)-在Android Studio中使用ndk-build
前面一篇我们接触了CMake,这一篇写写关于ndk-build的使用过程.刚刚用到,想到哪儿写哪儿. 环境背景 Android开发IDE版本:AndroidStudio 2.2以上版本(目前已经升级到 ...
- OC与c混编实现Java的String的hashcode()函数
首先,我不愿意大家需要用到这篇文章里的代码,因为基本上你就是被坑了. 起因:我被Java后台人员坑了一把,他们要对请求的参数增加一个额外的字段,字段的用途是来校验其余的参数是否再传递过程中被篡改或因为 ...