本文目录导读:

我来介绍几个Python字符串分割的实用案例。
基础分割 - split()
按空格分割(默认)
text = "Python 编程 语言 学习" result = text.split() print(result) # ['Python', '编程', '语言', '学习']
按指定字符分割
text = "apple,banana,orange,grape"
result = text.split(",")
print(result) # ['apple', 'banana', 'orange', 'grape']
限制分割次数 - split(maxsplit)
text = "2024-01-15-weather-report"
result = text.split("-", 2)
print(result) # ['2024', '01', '15-weather-report']
# 只分割一次
result2 = text.split("-", 1)
print(result2) # ['2024', '01-15-weather-report']
从右侧分割 - rsplit()
path = "/home/user/projects/data/file.txt"
result = path.rsplit("/", 1)
print(result) # ['/home/user/projects/data', 'file.txt']
# 获取文件扩展名
filename = "report_2024.csv"
name, ext = filename.rsplit(".", 1)
print(f"文件名: {name}, 扩展名: {ext}") # 文件名: report_2024, 扩展名: csv
按多字符分割
# 方法1:使用正则表达式
import re
text = "Python||Java||C++||JavaScript"
result = re.split(r"\|\|", text)
print(result) # ['Python', 'Java', 'C++', 'JavaScript']
# 方法2:替换后分割
result2 = text.replace("||", ",").split(",")
print(result2) # ['Python', 'Java', 'C++', 'JavaScript']
按换行符分割
multi_line = """第一行文本
第二行文本
第三行文本
第四行文本"""
# 方式1
lines1 = multi_line.split("\n")
print(lines1) # ['第一行文本', '第二行文本', '第三行文本', '第四行文本']
# 方式2:推荐,会自动处理不同平台换行符
lines2 = multi_line.splitlines()
print(lines2) # ['第一行文本', '第二行文本', '第三行文本', '第四行文本']
实际案例
案例1:解析CSV数据
csv_data = "张三,25,北京,工程师\n李四,30,上海,设计师"
rows = csv_data.split("\n")
for row in rows:
fields = row.split(",")
name, age, city, job = fields
print(f"姓名: {name}, 年龄: {age}, 城市: {city}, 职业: {job}")
案例2:解析URL参数
url = "https://example.com/search?q=python&page=1&lang=zh"
# 获取查询参数部分
query_string = url.split("?")[1]
print(query_string) # q=python&page=1&lang=zh
# 解析参数
params = query_string.split("&")
for param in params:
key, value = param.split("=")
print(f"{key}: {value}")
案例3:文本清洗
dirty_text = " Python 编程 语言 学习 " # 分割并去除空白 clean_words = [word for word in dirty_text.split() if word.strip()] print(clean_words) # ['Python', '编程', '语言', '学习']
注意事项
# 1. 空字符串分割
text = "a,b,,c"
# 默认会保留空字符串
result = text.split(",")
print(result) # ['a', 'b', '', 'c']
# 2. 分割字符不存在时
text = "hello world"
result = text.split(",")
print(result) # ['hello world']
# 3. 连续分隔符
text = "a||b|||c"
result = text.split("||")
print(result) # ['a', 'b', '|c']
split():最常用的分割方法,默认按空白字符分割rsplit():从右侧开始分割,适合处理路径splitlines():按行分割,处理不同系统换行符re.split():支持正则表达式的复杂分割- maxsplit参数:控制分割次数
选择哪个方法取决于你的具体需求和数据格式。