Python入门之获取当前所在目录的方法详解
#本文给大家讲解的是使用python获取当前所在目录的方法以及相关示例,非常的清晰简单,有需要的小伙伴可以参考下
sys.path
模块搜索路径的字符串列表。由环境变量PYTHONPATH初始化得到。
sys.path[0]是调用Python解释器的当前脚本所在的目录。
sys.argv
一个传给Python脚本的指令参数列表。
sys.argv[0]是脚本的名字(由系统决定是否是全名)
假设显示调用python指令,如 python demo.py ,会得到绝对路径;
若直接执行脚本,如 ./demo.py ,会得到相对路径。
os.getcwd()
获取当前工作路径。在这里是绝对路径。
https://docs.python.org/2/library/os.html#os.getcwd
__file__
获得模块所在的路径,可能得到相对路径。
如果显示执行Python,会得到绝对路径。
若按相对路径来直接执行脚本 ./pyws/path_demo.py
,会得到相对路径。
为了获取绝对路径,可调用 os.path.abspath()
os.path 中的一些方法
os.path.split(path)
将路径名称分成头和尾一对。尾部永远不会带有斜杠。如果输入的路径以斜杠结尾,那么得到的空的尾部。
如果输入路径没有斜杠,那么头部位为空。如果输入路径为空,那么得到的头和尾都是空。
https://docs.python.org/2/library/os.path.html#os.path.split
os.path.realpath(path)
返回特定文件名的绝对路径。
https://docs.python.org/2/library/os.path.html#os.path.realpath
代码示例
环境 Win7, Python2.7
以 /e/pyws/path_demo.py 为例
#!/usr/bin/env python import os import sys if __name__ == '__main__': print "sys.path[0] =", sys.path[0] print "sys.argv[0] =", sys.argv[0] print "__file__ =", __file__ print "os.path.abspath(__file__) =", os.path.abspath(__file__) print "os.path.realpath(__file__) = ", os.path.realpath(__file__) print "os.path.dirname(os.path.realpath(__file__)) =", os.path.dirname(os.path.realpath(__file__)) print "os.path.split(os.path.realpath(__file__)) =", os.path.split(os.path.realpath(__file__)) print "os.getcwd() =", os.getcwd()
在 /d 中运行,输出为
$ python /e/pyws/path_demo.py sys.path[0] = E:\pyws sys.argv[0] = E:/pyws/path_demo.py __file__ = E:/pyws/path_demo.py os.path.abspath(__file__) = E:\pyws\path_demo.py os.path.realpath(__file__) = E:\pyws\path_demo.py os.path.dirname(os.path.realpath(__file__)) = E:\pyws os.path.split(os.path.realpath(__file__)) = ('E:\\pyws', 'path_demo.py') os.getcwd() = D:\
在e盘中用命令行直接执行脚本
$ ./pyws/path_demo.py sys.path[0] = E:\pyws sys.argv[0] = ./pyws/path_demo.py __file__ = ./pyws/path_demo.py os.path.abspath(__file__) = E:\pyws\path_demo.py os.path.realpath(__file__) = E:\pyws\path_demo.py os.path.dirname(os.path.realpath(__file__)) = E:\pyws os.path.split(os.path.realpath(__file__)) = ('E:\\pyws', 'path_demo.py') os.getcwd() = E:\
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?