zoukankan      html  css  js  c++  java
  • 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   '

    >>>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函数提取出来的,

    1. root, extension = os.path.splitext(fname) 

    这样,fname中的扩展名部分即.py被赋给变量extension,而其余部分则赋给了变量root。如果想得到不带点号的扩展名的话,只需使用os.path.splitext(fname)[1][1:]即可。
    假设一个文件名为f,其扩展名随意,若想将其扩展名改为ext,可以使用下面的代码:

    1. newfile = os.path.splitext(f)[0] + ext 

    下面是一个具体的示例:

      1. >>f = ’/some/path/case2.data_source’  
      2. >>moviefile = os.path.basename(os.path.splitext(f)[0] + ’.mpg’)  
      3. >>> moviefile  
      4. ’case2.mpg’ 

    4.splitlines用法

     splitlines()方法返回一个字符串的所有行, 默认splitelines参数keepends为False,意思是不保留每行结尾的 , 而keepends为True时,分割的每 一行里尾部会有

          按行分割字符串,返回值为列表

    去掉列表的方法:s1 =s.splitlines()[0]

  • 相关阅读:
    字符串
    完全背包
    背包2
    0-1背包
    生日劲歌会
    设计照明系统
    宝岛探险
    汉诺塔问题
    并查集 黑帮危机
    数塔问题
  • 原文地址:https://www.cnblogs.com/liuqi-beijing/p/6222384.html
Copyright © 2011-2022 走看看