读取文件时统计单行'/'数量并按'/'拆分路径的实现方法
完整实现代码(Python)
你原有遍历txt的逻辑可以直接嵌入以下处理逻辑,完整可运行示例:
import os def process_path_txt(target_dir: str = "."): # 遍历目标目录下所有txt文件 for file in os.listdir(target_dir): if not file.endswith(".txt"): continue file_full_path = os.path.join(target_dir, file) with open(file_full_path, "r", encoding="utf-8") as f: for line in f: # 去除行首尾换行、空格,跳过空行 pure_path = line.strip() if not pure_path: continue # 1. 统计/字符数量 slash_num = pure_path.count("/") # 此处可替换为你自己的统计结果存储逻辑 print(f"路径:{pure_path},含/数量:{slash_num}") # 2. 拆分路径获取各层级节点 level_nodes = pure_path.split("/") # 后续逐层级处理示例:遍历输出每个层级的目录名 for idx, node in enumerate(level_nodes): print(f"第{idx+1}级节点:{node}") if __name__ == "__main__": # 传入txt文件所在的文件夹路径,默认处理当前脚本所在文件夹 process_path_txt()
关键逻辑说明
- 行预处理:读取每行后先执行
strip(),避免换行符、首尾多余空格干扰统计和拆分结果,空行直接跳过不处理 /数量统计:直接调用Python字符串原生的count()方法,传入'/'即可直接得到计数,性能比手动遍历更高- 路径拆分:
split('/')返回的列表就是按层级排序的目录节点,你可以通过索引level_nodes[0]、level_nodes[1]直接取对应层级的目录,也可以遍历列表做后续业务处理
特殊场景兼容
如果你的路径里包含开头带
/的绝对路径,拆分后第一个元素会是空字符串,可加过滤逻辑去掉无效节点:level_nodes = [n for n in pure_path.split("/") if n]
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

