Python 获取当前所在目录的方法详解

 更新时间:2017年08月02日 08:51:30   作者:RustFisher  
本文给大家讲解的是使用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:\

相关文章

  • 简单的编程0基础下Python入门指引

    简单的编程0基础下Python入门指引

    这篇文章主要介绍了简单的编程0基础下Python入门指引,包括从各个系统的Python安装和简单的语句知识,需要的朋友可以参考下
    2015-04-04
  • python学习之基于Python的人脸识别技术学习

    python学习之基于Python的人脸识别技术学习

    面部识别技术的应用越来越广泛,它广泛应用于安全系统、人机交互、社交媒体、医疗保健等领域。本文介绍了基于Python的人脸识别技术,感兴趣的小伙伴可以参考阅读
    2023-03-03
  • python re.match()用法相关示例

    python re.match()用法相关示例

    这篇文章主要介绍了python re.match()用法相关示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • python 多种日期时间处理函数实例详解

    python 多种日期时间处理函数实例详解

    Python提供了丰富的日期和时间处理函数,可以帮助你轻松地解析、格式化、计算和操作日期和时间,在实际应用中,根据具体需求选择合适的函数,可以提高工作效率并简化代码,本文给大家介绍python多种日期时间处理函数介绍,感兴趣的朋友一起看看吧
    2024-03-03
  • python的命名规则知识点总结

    python的命名规则知识点总结

    在本篇文章里小编给大家分享的是关于python的命名规则知识点总结,有需要的朋友们可以参考下。
    2019-10-10
  • 基于plt.title无法显示中文的快速解决

    基于plt.title无法显示中文的快速解决

    这篇文章主要介绍了基于plt.title无法显示中文的快速解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 利用Django内置的认证视图实现用户密码重置功能详解

    利用Django内置的认证视图实现用户密码重置功能详解

    这篇文章主要给大家介绍了关于利用Django内置的认证视图实现用户密码重置功能的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-11-11
  • Python绘制3D立体花朵示例详解

    Python绘制3D立体花朵示例详解

    情人节送玫瑰花千篇一律?本文将为大家介绍利用Python绘制多种3D立体花朵的示例代码,让女友感受一下程序员的浪漫!快来跟随小编一起学习一下吧
    2021-12-12
  • pyCharm中python对象的自动提示方式

    pyCharm中python对象的自动提示方式

    这篇文章主要介绍了pyCharm中python对象的自动提示方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • python使用pyaudio录音和格式转化方式

    python使用pyaudio录音和格式转化方式

    这篇文章主要介绍了python使用pyaudio录音和格式转化方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05

最新评论