Python怎么获取当前路径?,python获取路径方法?

在 Python 中获取当前路径的完整指南

在 Python 开发中,获取“当前路径”通常有两种不同的含义:一种是当前工作目录(Current Working Directory),另一种是当前脚本文件所在的目录(Script Directory),这两者在运行方式不同时(例如在 IDE 中运行与在命令行中运行)可能会指向不同的位置。

获取当前工作目录 (CWD)

工作目录是指 Python 解释器当前正在运行的文件夹,如果你在终端中 cd 到某个文件夹并运行脚本,该文件夹就是工作目录。

[30] Python文件路径 | 文件在哪里,代码咋知道
加载中
[30] Python文件路径 | 文件在哪里,代码咋知道

使用 os 模块(传统方法)

  • 代码实现:
    import os
    cwd = os.getcwd()
    print(f"当前工作目录是: {cwd}")
  • 特点:简单直接,兼容所有 Python 版本。

使用 pathlib 模块(现代方法,推荐)

  • 代码实现:

    Python怎么获取当前路径?,python获取路径方法?

    from pathlib import Path cwd = Path.cwd() print(f"当前工作目录是: {cwd}")
  • 特点:面向对象,路径操作更直观,是 Python 3.4+ 的标准推荐方式。

获取当前脚本文件所在的目录

无论你在哪个目录下启动程序,如果你想获取代码文件本身存放的位置(例如为了读取同级目录下的配置文件),应该使用 __file__ 变量。

使用 os 模块

  • 代码实现:
    import os
    # 获取当前脚本的绝对路径
    script_path = os.path.abspath(__file__)
    # 获取脚本所在的文件夹目录
    script_dir = os.path.dirname(script_path)
    print(f"脚本文件所在目录: {script_dir}")

使用 pathlib 模块(推荐)

  • 代码实现:
    from pathlib import Path
    # .resolve() 用于获取绝对路径,.parent 获取父级目录
    script_dir = Path(__file__).resolve().parent
    print(f"脚本文件所在目录: {script_dir}")

    Python怎么获取当前路径?,python获取路径方法?


核心区别对比

为了防止混淆,请参考下表选择合适的方法:

需求场景 推荐方法 关键点
获取用户执行命令时的位置 Path.cwd() 或 os.getcwd() 随启动位置而改变
获取代码文件存放的位置 Path(__file__).resolve().parent 随文件存放位置而改变
拼接路径(如读取配置) script_dir / "config.ini"

Python怎么获取当前路径?,python获取路径方法?

建议使用 pathlib 的 运算符

常见应用场景:构建绝对路径

在实际项目中,最常见的做法是基于脚本目录构建绝对路径,以避免因启动位置不同而导致的文件找不到(FileNotFoundError)错误。

  • 最佳实践代码:

    from pathlib import Path
    # 1. 定位到项目根目录
    BASE_DIR = Path(__file__).resolve().parent
    # 2. 拼接子文件夹中的文件路径
    config_path = BASE_DIR / "config" / "settings.json"
    print(f"配置文件的绝对路径为: {config_path}")

重点总结:

  • 如果需要知道“我在哪里运行这个程序” $rightarrow$ 使用 Path.cwd()。
  • 如果需要知道“这个代码文件放在哪里” $rightarrow$ 使用 Path(__file__)。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/python%e6%80%8e%e4%b9%88%e8%8e%b7%e5%8f%96%e5%bd%93%e5%89%8d%e8%b7%af%e5%be%84%ef%bc%9f%ef%bc%8cpython%e8%8e%b7%e5%8f%96%e8%b7%af%e5%be%84%e6%96%b9%e6%b3%95%ef%bc%9f/

赞 (0)
jquery ui cdn怎么用,jquery ui cdn链接
上一篇 2026年7月12日 17:22
Linux如何删除驱动?,Linux卸载驱动的命令有哪些?
下一篇 2026年7月12日 17:23

相关推荐

  • 高级项目经理证书申请表怎么填?高级项目经理报考条件有哪些

    精准填报高级项目经理证书申请表是获取该项核心资质的唯一行政路径,需严格对标2026年新版评审标准与主管机构规范,确保业绩材料与学时证明的绝对合规,申请表核心逻辑与2026年评审新规政策风向与底层逻辑依据中国软件行业协会2026年最新修订的评审规范,高级项目经理的考核已从“纯论文导向”全面转向“交付实效与风控能力……

    2026年4月26日
    5600
  • 服务器C盘哪些文件可以删除,服务器C盘空间不足怎么办

    服务器C盘可删除的文件主要集中在临时文件、日志缓存、回收站和无用程序数据,但务必区分系统核心文件,避免误删导致系统崩溃,为什么服务器C盘空间会频繁告急Windows服务器在长期运行中,C盘空间被蚕食是常态,日志文件是最常见的元凶,IIS、事件查看器、应用程序日志会持续写入,几年下来可能占据数十GB,临时文件包括……

    2026年8月3日
    1600
  • 防火墙进行域名解析的原理与必要性探讨?

    防火墙进行域名解析的核心原理是通过内置或集成的DNS代理功能,对网络中的DNS请求进行拦截、处理与转发,从而实施访问控制、安全防护与流量管理,这一过程不仅提升了网络安全性,还优化了域名解析效率,是企业网络安全架构中不可或缺的一环,防火墙域名解析的基本工作原理防火墙在域名解析中通常充当DNS代理角色,当客户端发起……

    2026年2月3日
    12500
  • fdisk扩容命令怎么用,具体操作步骤有哪些?

    fdisk扩容的核心是删除分区再重建,操作风险极高,不适合生产环境,优先使用growpart或parted完成在线扩容,fdisk扩容命令实战:三步完成分区边界调整fdisk是最经典的dos分区工具,但它的扩容逻辑跟现代需求有些脱节,当你需要扩大一块已有分区时,fdisk不提供直接修改分区大小的选项,只能先删后……

    2026年7月30日
    1300
  • 防火墙ping测试异常,为何ping后总是显示一般故障,原因何在?

    防火墙技术中,Ping后显示一般故障,通常意味着网络通信在防火墙层面遇到了阻碍,导致ICMP协议数据包无法正常往返,这既可能是防火墙策略配置不当,也可能是更深层次的网络问题,理解其成因并掌握排查方法,对保障网络稳定至关重要,核心原因解析:为何Ping会显示一般故障?“一般故障”是一个笼统的提示,其背后主要涉及防……

    2026年2月4日
    12600
  • 西游宇宙服务器都有哪些,新手入驻哪个区服更好?

    西游宇宙服务器并非单一游戏的服务区,而是涵盖网易旗下《梦幻西游》《大话西游》系列等多款西游题材网游的跨游戏大区体系,目前主要分为经典PC端大区、移动端大区以及怀旧服三大阵营,梦幻西游》电脑版拥有超过40个服务器大区,是玩家基数最庞大的核心宇宙,西游宇宙服务器的整体架构与分类西游宇宙这个概念,在玩家圈子里通常指代……

    2026年9月17日
    200
  • LOL哪些服务器归拳头管,分别都是什么区

    拳头游戏直接管辖的服务器包括北美、欧洲西部、欧洲东部、韩国、巴西、拉丁美洲、土耳其、俄罗斯、大洋洲、日本、东南亚以及PBE测试服,中国服务器由腾讯代理运营,拳头全球服务器布局概览《英雄联盟》的服务器架构由拳头游戏统一规划,但运营权分为直营和代理两种模式,拳头直接管辖的服务器覆盖了全球主要地区,这些地区的玩家账号……

    2026年8月25日
    1200
  • 多IP云服务器有哪些?,哪家性价比高

    多IP云服务器通常指一台云主机绑定多个独立公网IP,常见形态包括站群多IP、多C段、海外原生IP和弹性多IP;服务商既有公共云厂商,也有简米科技、酷番云这类持牌IDC,选型时先看资质、IP纯净度和机房,再谈价格,多IP云服务器是什么,和普通云服务器差在哪IP数量与分配方式普通云服务器默认给1个公网IP,需要更多……

    2026年9月22日
    200
  • gui服务器技术怎么用?gui服务器搭建教程

    GUI服务器技术并非简单的界面显示,而是通过远程协议将图形交互实时传输至客户端,其核心在于降低带宽占用并提升多端兼容性的架构设计,在2026年的数字化办公场景中,传统的本地部署模式正面临严峻挑战,企业不再满足于“能跑就行”,而是追求极致的响应速度和跨平台的一致性体验,GUI服务器技术作为连接后端逻辑与前端视觉的……

    2026年6月25日
    2400
  • 高级语言翻译处理方法正确的是?如何正确处理高级语言翻译

    高级语言翻译处理方法的正确选择是采用基于大语言模型的神经机器翻译(NMT)结合领域自适应微调与人类反馈强化学习(RLHF)的人机协同闭环架构,该方案在语境保真度与专业术语精准度上远超传统规则与统计机器翻译,高级语言翻译处理的核心演进与底层逻辑翻译处理范式的代际更迭语言翻译处理已从早期的规则机器翻译(RBMT……

    2026年4月24日
    4900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注