python中的split()、rsplit()、splitlines()用法比较

split(分隔符,分割几次)从左向右寻找,分割元素并放入列表中,该分隔符丢弃;

rsplit(分隔符,分割几次)从右向左寻找,分割元素并放入列表中,该分隔符丢弃;

splitlines() 按照行(‘\r’, ‘\r\n’, \n’)分隔,并将元素放入列表中,该分隔符丢弃;

1 split() 从左向右切割

split()表示通过指定分隔符对字符串进行切片,元素放入列表中,该分隔符丢弃;

从左向右寻找切割,切片类表从左到右下标从0开始;

split(分隔符,分割几次)

split() 方法语法:

str.split(str="", num=string.count(str)).
参数
str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num -- 分割次数。默认为 -1, 即分隔所有。
def demo():
    str = "a,b,c,d,e,f,g"
    str = str.split(",") #通过指定分隔符对字符串进行切片,保存在列表里
    print(str) 
    print(str[0]) 
 
demo()

输出

['a', 'b', 'c', 'd', 'e', 'f', 'g']
a

split(分隔符,分割几次)

def demo():
    str = "a,b,c,d,e,f,g"
    str = str.split(",",1) #只分割一次
    print(str) 
 
demo()

分割结果

['a', 'b,c,d,e,f,g']

详细分析

def demo():
    str = "a,b,c,d,e,f,g" 
    print(type(str)) #字符串类型
    print(str)
    str = str.split(",") #通过指定分隔符对字符串进行切片,保存在列表里
    print(type(str)) #切片后列表类型
    print(str)
    print(str[0]) 

    demo()

在这里插入图片描述

2 rsplit() 从右向左分割

rsplit()表示从右侧开始将字符串拆分为列表,切片类表从左到右下标从0开始;

rsplit(分隔符,分割几次);

def demo():
    str = "/home/data/2/text.txt"
    str = str.rsplit("/")  #从右向左寻找分隔符,分割后的列表下标依然是从左向左从0开始
    print(str)

    print(str[0]) # 第0号元素是最左侧分割线,左边的元素,这个为空,
    print(str[1])
 
demo()

在这里插入图片描述
输出结果

['', 'home', 'data', '2', 'text.txt']

home

rsplit(分隔符,分割几次);
只分割一次;

def demo():
    str = "/home/data/2/text.txt"
    str = str.rsplit("/",1)  #从右向左寻找分隔符,分割后的列表下标依然是从左向左从0开始
    print(str)

    print(str[0])
    print(str[1])
 
demo()

在这里插入图片描述
输出结果

['/home/data/2', 'text.txt']
/home/data/2
text.txt

3 splitlines() 根据换行符切割

描述
splitlines() 按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

语法

str.splitlines([keepends])
参数
keepends -- 在输出结果里是否保留换行符('\r', '\r\n', \n'),默认为 False,不包含换行符,如果为 True,则保留换行符。

返回值
返回一个包含各行作为元素的列表。

def demo():
    str = "hello\nworld\ndlrb"
    str = str.splitlines() #根据换行符切割,,,注意换行符是这样'\n'

    print(str)
    print(str[0])
 
demo()

在这里插入图片描述
输出结果

['hello', 'world', 'dlrb']
hello

4 rsplit()妙用

Python 字符分割时,只分割最后一个(rsplit的使用)

在python分割时,有时候不是把整个字符分割,而是只分割部分,例如:我要分割文件路径,只想把最后的文件名去除,保留文件夹的路径。

例如:/home/username/data/text.txt 我想要得到/home/username/data/。如果用split则会把整个分割成一个list,但是可以使用rsplit。

path = "/home/username/data/text.txt "
#使用split -->["home","username","data","text.txt "] 
path.split("/") 

# 而使用rsplit -->["/home/username/data","text.txt "]
path.rsplit("/",1)[0] 
  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

R-G-B

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值