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

Python脚本跨OS获取独立路径,在上级两级目录创建文件的方法

跨操作系统获取项目根目录并创建文件(支持Click)

核心思路

用Python标准库pathlib处理路径(天生跨平台,自动适配不同系统的路径分隔符),通过脚本自身的绝对路径向上回溯两级得到项目根目录,再结合Click实现命令行运行。

实现步骤与代码示例

import click
from pathlib import Path

@click.command()
def create_root_file():
    # 获取当前脚本的绝对路径(不受运行目录影响)
    script_abspath = Path(__file__).resolve()
    # 向上回溯两级,得到项目根目录
    project_root = script_abspath.parent.parent
    # 拼接目标文件路径
    target_file = project_root / "created_file"
    # 创建文件(exist_ok=True避免文件已存在时报错)
    target_file.touch(exist_ok=True)
    click.echo(f"文件已创建:{target_file}")

if __name__ == "__main__":
    create_root_file()

关键细节说明

  • Path(__file__).resolve():确保拿到的是脚本的绝对路径,不管你是在folder2目录下直接运行,还是从项目根目录执行python folder1/folder2/test.py,都能准确定位脚本位置。
  • .parent.parent:跨平台通用的目录回溯方式,无需手动处理\或/分隔符,pathlib会自动适配操作系统。
  • Click集成:无需额外配置,路径逻辑完全独立于Click的命令行处理,直接把逻辑放在Click装饰的函数里即可。

避坑提醒

  • 不要用相对路径../..:相对路径依赖当前工作目录,若运行脚本的目录不是folder2,路径会直接出错。
  • 不要手动拼接路径字符串:比如用os.sep拼接,容易出现跨平台兼容问题,pathlib的/操作符是更安全的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:45:31