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使用rabbitmq实现网络爬虫示例
Feb 20 Python
Python字符串转换成浮点数函数分享
Jul 24 Python
实例讲解Python中函数的调用与定义
Mar 14 Python
Python 正则表达式入门(中级篇)
Dec 07 Python
Python生成随机数组的方法小结
Apr 15 Python
浅谈pandas用groupby后对层级索引levels的处理方法
Nov 06 Python
python动态进度条的实现代码
Jul 03 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
Jan 25 Python
Python中猜拳游戏与猜筛子游戏的实现方法
Sep 04 Python
Python实现手势识别
Oct 21 Python
Python实现京东抢秒杀功能
Jan 25 Python
解决python 输出到csv 出现多空行的情况
Mar 24 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
php 定界符格式引起的错误
2011/05/24 PHP
php获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
php Session无效分析资料整理
2016/11/29 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
JavaScript中null与undefined分析
2009/07/25 Javascript
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
javascript 闭包
2011/09/15 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
node.js中的fs.read方法使用说明
2014/12/17 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
由浅入深剖析Angular表单验证
2016/07/14 Javascript
js实现随机数字字母验证码
2017/06/19 Javascript
angularJs的ng-class切换class
2017/06/23 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
BootStrap自定义popover,点击区域隐藏功能的实现
2018/01/23 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
[01:11]回顾历届DOTA2国际邀请赛中国区预选赛
2017/06/26 DOTA
Tensorflow加载预训练模型和保存模型的实例
2018/07/27 Python
Python3中关于cookie的创建与保存
2018/10/21 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
C++:局部变量能否和全局变量重名
2014/03/03 面试题
信息部岗位职责
2013/11/12 职场文书
教师推荐信范文
2013/11/24 职场文书
销售员岗位职责范本
2014/02/03 职场文书
奶茶店创业计划书
2014/08/14 职场文书
我的梦想演讲稿500字
2014/08/21 职场文书
单方离婚协议书范本(2014版)
2014/09/30 职场文书
领导干部查摆“四风”问题自我剖析材料思想汇报
2014/10/05 职场文书
2015选调生工作总结
2015/07/24 职场文书
会议主持词通用版
2019/04/02 职场文书
导游词之平津战役纪念馆
2019/11/04 职场文书