Python跨平台实现文件路径到点分表示法的转换方法
Python跨平台路径转模块名方法
使用Python标准库自带的pathlib即可实现,无需引入第三方依赖,天然支持Windows、Linux、macOS等多平台路径格式:
实现逻辑
- 将输入的路径字符串转为
Path对象,自动适配不同系统的路径分隔符(Windows的\、类Unix系统的/都可被正常识别) - 调用
with_suffix('')方法移除文件后缀名 - 将路径的各分段用
.拼接即可
代码示例
from pathlib import Path def path_to_module(path_str: str) -> str: path_obj = Path(path_str) # 过滤空片段可兼容绝对路径开头的根标识,无需兼容可去掉if判断 return '.'.join(part for part in path_obj.with_suffix('').parts if part)
测试效果
- 输入类Unix路径:
path_to_module("aaa/bbb/ccc/ddd.py"),输出结果为aaa.bbb.ccc.ddd - 输入Windows路径:
path_to_module("aaa\\bbb\\ccc\\ddd.py"),输出结果为aaa.bbb.ccc.ddd
如果需要处理带有多层后缀的文件(例如ddd.tar.gz),可以把with_suffix('')替换为多次调用该方法,或直接取path_obj.stem获取不带任何后缀的文件名。
内容的提问来源于stack exchange,提问作者Martin Gergov
相关产品推荐
相关产品推荐

