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


Posted in Python onAugust 02, 2017

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:\
Python 相关文章推荐
python 输出一个两行字符的变量
Feb 05 Python
python 根据pid杀死相应进程的方法
Jan 16 Python
python字典操作实例详解
Nov 16 Python
python多进程使用及线程池的使用方法代码详解
Oct 24 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
Feb 28 Python
Django项目之Elasticsearch搜索引擎的实例
Aug 21 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
Mar 08 Python
opencv 实现特定颜色线条提取与定位操作
Jun 02 Python
python中if及if-else如何使用
Jun 02 Python
使用Django的JsonResponse返回数据的实现
Jan 15 Python
Python基本数据类型之字符串str
Jul 21 Python
68行Python代码实现带难度升级的贪吃蛇
Jan 18 Python
浅谈python中的数字类型与处理工具
Aug 02 #Python
Python实现的快速排序算法详解
Aug 01 #Python
Python实现的弹球小游戏示例
Aug 01 #Python
Python的mysql数据库的更新如何实现
Jul 31 #Python
Python操作csv文件实例详解
Jul 31 #Python
Python实现字典去除重复的方法示例
Jul 31 #Python
浅析使用Python操作文件
Jul 31 #Python
You might like
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
用文本文件制作留言板提示(上)
2006/10/09 PHP
PHP中break及continue两个流程控制指令区别分析
2011/04/18 PHP
php设计模式 Decorator(装饰模式)
2011/06/26 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
php中判断数组相等的方法以及数组运算符介绍
2015/03/30 PHP
PHP封装的Twitter访问类实例
2015/07/18 PHP
学习javascript,实现插入排序实现代码
2011/07/31 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
JavaScript 闭包机制详解及实例代码
2016/10/10 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
用Python实现读写锁的示例代码
2018/11/05 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
Pycharm 安装 idea VIM插件的图文教程详解
2020/02/21 Python
Python如何转换字符串大小写
2020/06/04 Python
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
测量实习生自我鉴定
2013/09/19 职场文书
《盲人摸象》教学反思
2014/02/16 职场文书
销售助理岗位职责
2014/02/21 职场文书
公职人员索取回扣检举信
2014/04/04 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
推荐信格式要求
2014/05/09 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python