Python中分割文件路径列表并保留斜杠的实现方法
保留斜杠的路径分割实现方案
你需要将路径字符串列表分割为包含带斜杠目录段和文件名的子列表,之前用Path.parts会丢失斜杠,这里提供两种实用的实现方法:
方法一:字符串拆分后手动补全斜杠
通过split('/')拆分路径,再给目录段添加斜杠,文件名保持原样:
path_list = ['path/to/file.txt', 'path/to/another/file.txt', 'another/path/to/afile.txt', 'justafile.txt'] new_list = [] for path in path_list: segments = path.split('/') # 处理单文件路径(无斜杠)的情况 if len(segments) == 1: new_list.append(segments) continue # 给目录段加斜杠,最后一个元素保留原文件名 processed_segments = [seg + '/' for seg in segments[:-1]] + [segments[-1]] new_list.append(processed_segments) # 输出结果 print(new_list)
运行后会得到你期望的格式:
[['path/', 'to/', 'file.txt'], ['path/', 'to/', 'another/', 'file.txt'], ['another/', 'path/', 'to/', 'afile.txt'], ['justafile.txt']]
方法二:正则表达式匹配
利用正则直接提取带斜杠的目录段和文件名,代码更简洁:
import re path_list = ['path/to/file.txt', 'path/to/another/file.txt', 'another/path/to/afile.txt', 'justafile.txt'] new_list = [re.findall(r'[^/]+/|.+', path) for path in path_list] print(new_list)
正则表达式[^/]+/匹配所有以斜杠结尾的目录片段,|.+匹配剩余的文件名部分,findall会自动把匹配到的结果组成列表,刚好符合需求。
内容的提问来源于stack exchange,提问作者Anna Ortega
相关产品推荐
相关产品推荐

