You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中glob获取混合路径后拆分无扩展名文件名出错求助

解决路径分隔符混合与文件名拆分问题

问题根源是手动处理路径时未考虑跨平台分隔符差异,加上glob返回的路径可能混合/和\,导致后续路径拼接错误。以下是两种基于Python标准库的解决方案:

方法1:使用os.path模块(兼容所有Python版本)

借助os.path的工具函数标准化路径、拆分目录与文件名,确保路径格式统一:

import glob
import os

json_paths = glob.glob('testproject/JSON/*.json', recursive=True)
for json_path in json_paths:
    # 标准化路径,自动统一系统分隔符(Windows用\,类Unix用/)
    normalized_path = os.path.normpath(json_path)
    # 拆分目录路径和带扩展名的文件名
    dir_path, file_with_ext = os.path.split(normalized_path)
    # 剥离.json扩展名,得到基础文件名
    file_base, _ = os.path.splitext(file_with_ext)
    # 拼接生成对应的.uml文件路径
    uml_path = os.path.join(dir_path, f"{file_base}.uml")
    
    # 后续可在此处处理uml文件(如创建、写入内容)
    print(uml_path)

方法2:使用pathlib模块(Python 3.4+推荐)

pathlib是面向对象的路径处理工具,语法更简洁,自动处理跨平台分隔符:

from pathlib import Path
import glob

json_paths = glob.glob('testproject/JSON/*.json', recursive=True)
for json_path in json_paths:
    # 将字符串路径转为Path对象,自动标准化分隔符
    json_file = Path(json_path)
    # 直接替换扩展名生成.uml路径
    uml_file = json_file.with_suffix('.uml')
    
    # 如需字符串格式路径,使用str(uml_file)
    print(uml_file)

错误原因说明

手动用split('/')或split('\\')拆分混合分隔符的路径时,会得到错误的分段结果(比如把testproject/JSON\abc.json拆成['testproject', 'JSON\\abc.json']),后续拼接出的JSON\\abc.uml是格式错误的相对路径,最终触发FileNotFoundError。使用标准库的路径工具会自动处理这些细节,避免手动拆分的失误。

内容的提问来源于stack exchange,提问作者Zykxpython

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 21:40:40