目录
split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)
os.path.split():按照路径将文件名和路径分割开
1. split()函数
语法:str.split(str="",num=string.count(str))[n]
参数说明:
str:表示为分隔符,默认为空格,但是不能为空(’’)。若字符串中没有分隔符,则把整个字符串作为列表的一个元素
num:表示分割次数。如果存在参数num,则仅分隔成 num+1个子字符串,并且每一个子字符串可以赋给新的变量
[n]:表示选取第n个分片
注意:当使用空格作为分隔符时,对于中间为空的项会自动忽略
描述
Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串
语法
split() 方法语法:
str.split(str="", num=string.count(str)).
参数
- str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
- num -- 分割次数。默认为 -1, 即分隔所有。
返回值
返回分割后的字符串列表。
2. os.path.split()函数
语法:os.path.split(‘PATH’)
参数说明:
1.PATH指一个文件的全路径作为参数:
2.如果给出的是一个目录和文件名,则输出路径和文件名
3.如果给出的是一个目录名,则输出路径和为空文件名
二、分离字符串
string = “www.gziscas.com.cn”
1.以’.'为分隔符
print(string.split(’.’))
[‘www’, ‘gziscas’, ‘com’, ‘cn’]
2.分割两次
print(string.split(’.’,2))
[‘www’, ‘gziscas’, ‘com.cn’]
3.分割两次,并取序列为1的项
print(string.split(’.’,2)[1])
gziscas
4.分割两次,并把分割后的三个部分保存到三个文件
u1, u2, u3 =string.split(’.’,2)
print(u1)—— www
print(u2)—— gziscas
print(u3) ——com.cn
三、分离文件名和路径
import os
print(os.path.split(’/dodo/soft/python/’))
(’/dodo/soft/python’, ‘’)
print(os.path.split(’/dodo/soft/python’))
(’/dodo/soft’, ‘python’)
四、实例
str=“hello boywww.baidu.com]>byebye”
print(str.split("[")[1].split("]")[0])
3. 示例:
将以下列表中的字符串提取中文名、英文名、个人成就,并打印出来!
programmers = [
"约翰·巴科斯(JohnWarnerBackus), 创建了Fortran语言",
"阿兰·库珀(Alan Cooper), 开发了Visual Basic语言",
"詹姆斯·高斯林(James Gosling), 开发了Java语言",
"安德斯·海尔斯伯格(Anders Hejlsberg), 开发了Turbo Pascal、Delphi、C#以及TypeScript",
"丹尼斯·里奇(Dennis MacAlistair Ritchie), 发明了C语言",
"比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup), 他以创造C++编程语言而闻名,被称为“C++之父”",
"吉多·范罗苏姆(Guido van Rossum), 创造了 Python"
]
#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
'''
@File : string_split_get.py
@Time : 2024/1/27 09:20:44
@Author : Admin
@Version : 1.0
@Software: Visual Studio Code
'''
programmers = [
"约翰·巴科斯(JohnWarnerBackus), 创建了Fortran语言",
"阿兰·库珀(Alan Cooper), 开发了Visual Basic语言",
"詹姆斯·高斯林(James Gosling), 开发了Java语言",
"安德斯·海尔斯伯格(Anders Hejlsberg), 开发了Turbo Pascal、Delphi、C#以及TypeScript",
"丹尼斯·里奇(Dennis MacAlistair Ritchie), 发明了C语言",
"比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup), 他以创造C++编程语言而闻名,被称为“C++之父”",
"吉多·范罗苏姆(Guido van Rossum), 创造了 Python"
]
def fielt(sour):
cn =sour.split("(")[0] #按(左括号拆分字符串sour,并将拆分后的第一个值赋给变量 cn
en =sour.split("(")[1].split(")")[0] # 先按(左括号拆分字符串sour,取拆分后的第2个字符串,然后再将取到的字符串按右括号拆分,取其中第一个字符串,与 en1 = sour.split("(")[1], en = en1.split(")")[0]的结果一致
achievement=sour.split(",")[1] # 按,拆分字符串sour,取拆分后的第2个字符串
return cn,en,achievement
def get_info(): #定义一个获取函数
for i in range(len(programmers)): # 通过for循环遍历列表programmers
w,e,r=fielt(programmers[i]) # 调用fielt()数,其中将programmers的第i个字符串作为参数传给fielt()数
print(f"name_cn: ",w,"name_en:",e,"achivement:",r)
if __name__ == '__main__':
get_info()
运行结果:
name_cn: 约翰·巴科斯 name_en: JohnWarnerBackus achivement: 创建了Fortran语言
name_cn: 阿兰·库珀 name_en: Alan Cooper achivement: 开发了Visual Basic语言
name_cn: 詹姆斯·高斯林 name_en: James Gosling achivement: 开发了Java语言
name_cn: 安德斯·海尔斯伯格 name_en: Anders Hejlsberg achivement: 开发了Turbo Pascal、Delphi、C#以及TypeScript
name_cn: 丹尼斯·里奇 name_en: Dennis MacAlistair Ritchie achivement: 发明了C语言
name_cn: 比雅尼·斯特劳斯特鲁普 name_en: Bjarne Stroustrup achivement: 他以创造C++编程语言而闻名,被称为“C++之父”
name_cn: 吉多·范罗苏姆 name_en: Guido van Rossum achivement: 创造了 Python