🍀 前言
博客地址:
👋 简介
使用字符串时,常见的操作之一是使用给定的分隔符将字符串拆分为子字符串数组。在本文中,我们将讨论如何在Python中拆分字符串。
📖 正文
1 split
str.split(s, num)[n]
参数说明:
- s:表示指定的分隔符,不写的话,默认是空格(’ ‘)。如果字符串中没有给定的分隔符时,则把整个字符串作为列表的一个元素返回。
- num:表示分割次数。如果指定了参数num,就会将字符串分割成num+1个子字符串,并且每一个子字符串可以赋给新的变量。
[n]:表示选取第n个分片,n表示返回的list中元素下标,从0开始的。
1.1 基础用法
text = "a,b,c,d"
res = text.split(",")
print(res)
# ['a', 'b', 'c', 'd']
1.2 指定次数分割
text = "a,b,c,d"
res = text.split(",", 1)
print(res)
# ['a', 'b,c,d']
2 re.split
re.split(pattern, string, maxsplit=0, flags=0)
- pattern:相当于str.split()中的sep,分隔符的意思,不但可以是字符串,也可以为正则表达式: ‘[ab]’,表示的意思就是取a和b的任意一个值
- string:要进行分割的字符串
- maxsplit:分割的最大次数,这个参数和str.split()中有点不一样:默认值为0,表示分割次数无限制,能分几次分几次;取负数,表示不分割;若大于0,表示最多分割maxsplit次;
- flags:该参数可以用来修改pattern表达式的功能,比如忽略大小写 re.IGNORECASE(简写:re.I),即当flags = re.IGNORECASE ,pattern = [A-Z]不但能匹配到大写字母,也能匹配到小写字母,默认值为0,
2.1 maxsplit小于0
maxsplit<0,表示不分割
import re
s = '1,2,3,4,a,5,6,7,8,c,9,10,11,12'
print(re.split(r',[a-z],', s, maxsplit=-2, flags=0))
# ['1,2,3,4,a,5,6,7,8,B,9,10,11,12']
2.2 maxsplit等于0
maxsplit = 0,表示能分几次分几次
import re
s = '1,2,3,4,a,5,6,7,8,c,9,10,11,12'
print(re.split(r',[a-z],', s, maxsplit=0))
# ['1,2,3,4', '5,6,7,8', '9,10,11,12']
2.3 maxsplit大于0
maxsplit = 1, 表示分割一次
import re
s = '1,2,3,4,a,5,6,7,8,c,9,10,11,12'
print(re.split(r',[a-z],', s, maxsplit=1))
# ['1,2,3,4', '5,6,7,8,B,9,10,11,12']
2.4 flags
当flags的默认值0修改为re.IGNORECASE,表示忽略大小写
import re
s = '1,2,3,4,a,5,6,7,8,E,9,10,11,12'
print(re.split(r',[a-z],', s, maxsplit=0))
# ['1,2,3,4', '5,6,7,8,E,9,10,11,12']
print(re.split(r',[a-z],', s, maxsplit=0, flags=re.IGNORECASE))
# ['1,2,3,4', '5,6,7,8', '9,10,11,12']
3 splitlines
str.splitlines([keepends]) 按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
text = "Line 1\nLine 2\nLine 3\nLine 4"
print(text.splitlines())
# ['Line 1', 'Line 2', 'Line 3', 'Line 4']
print(text.splitlines(True))
# ['Line1\n', 'Line 2\n', 'Line 3\n', 'Line 4']
4 os.path
4.1 os.path.split
分割文件名与路径,返回(f_path, f_name)元组。如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在
os.path.split(‘PATH’)
PATH指一个文件的全路径作为参数:
如果给出的是一个目录和文件名,则输出路径和文件名
如果给出的是一个目录名,则输出路径和为空文件名
import os
print(os.path.split('/Users/michael/testdir/file.txt'))
# ('/Users/michael/testdir', 'file.txt')
print(os.path.split(r'D:\01 programming\02message\file.txt'))
# ('D:\\01 programming\\02message', 'file.txt')
4.2 os.path.splitext
分离文件名与扩展名,返回(f_name, f_extension)元组
os.path.splitext(‘PATH’)
import os
print(os.path.splitext('/Users/michael/testdir/file.txt'))
# ('/Users/michael/testdir/file', '.txt')
print(os.path.splitext(r'D:\01 programming\02message\file.txt'))
# ('D:\\01 programming\\02message\\file', '.txt')