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
相关产品推荐
相关产品推荐

