Python获取当前路径实现代码


Posted in Python onMay 08, 2017

 Python获取当前路径实现代码

import os,sys

使用sys.path[0]、sys.argv[0]、os.getcwd()、os.path.abspath(__file__)、os.path.realpath(__file__)

sys.path是Python会去寻找模块的搜索路径列表,sys.path[0]和sys.argv[0]是一回事因为Python会自动把sys.argv[0]加入

sys.path。

如果你在C:\test目录下执行python getpath\getpath.py,那么os.getcwd()会输出“C:\test”,sys.path[0]会输出“C:\test\getpath”。

如果你用py2exe模块把Python脚本编译为可执行文件,那么sys.path[0]的输出还会变化:

如果把依赖库用默认的方式打包为zip文件,那么sys.path[0]会输出“C:\test\getpath\libarary.zip”;

如果在setup.py里面指定zipfile=None参数,依赖库就会被打包到exe文件里面,那么sys.path[0]会输出“C:\test\getpath\getpath.exe”。

#!/bin/env python
#-*- encoding=utf8 -*-

import os,sys

if __name__=="__main__":

  print "__file__=%s" % __file__

  print "os.path.realpath(__file__)=%s" % os.path.realpath(__file__)

  print "os.path.dirname(os.path.realpath(__file__))=%s" % os.path.dirname(os.path.realpath(__file__))

  print "os.path.split(os.path.realpath(__file__))=%s" % os.path.split(os.path.realpath(__file__))[0]


  print "os.path.abspath(__file__)=%s" % os.path.abspath(__file__)

  print "os.getcwd()=%s" % os.getcwd()

  print "sys.path[0]=%s" % sys.path[0]

  print "sys.argv[0]=%s" % sys.argv[0]

输出结果:

D:\>python ./python_test/test_path.py
__file__=./python_test/test_path.py
os.path.realpath(__file__)=D:\python_test\test_path.py
os.path.dirname(os.path.realpath(__file__))=D:\python_test
os.path.split(os.path.realpath(__file__))=D:\python_test
os.path.abspath(__file__)=D:\python_test\test_path.py
os.getcwd()=D:\
sys.path[0]=D:\python_test
sys.argv[0]=./python_test/test_path.py

os.getcwd() “D:\”,取的是起始执行目录

sys.path[0]或sys.argv[0] “D:\python_test”,取的是被初始执行的脚本的所在目录

os.path.split(os.path.realpath(__file__))[0] “D:\python_test”,取的是__file__所在文件test_path.py的所在目录 

正确获取当前的路径:

__file__是当前执行的文件

 

  # 获取当前文件__file__的路径

  print "os.path.realpath(__file__)=%s" % os.path.realpath(__file__)

  # 获取当前文件__file__的所在目录

  print "os.path.dirname(os.path.realpath(__file__))=%s" % os.path.dirname(os.path.realpath(__file__)) 
  # 获取当前文件__file__的所在目录

  print "os.path.split(os.path.realpath(__file__))=%s" % os.path.split(os.path.realpath(__file__))[0] 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
python+requests+unittest API接口测试实例(详解)
Jun 10 Python
Python set常用操作函数集锦
Nov 15 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
Dec 03 Python
flask框架中勾子函数的使用详解
Aug 01 Python
用pycharm开发django项目示例代码
Oct 24 Python
Python django框架应用中实现获取访问者ip地址示例
May 17 Python
pyftplib中文乱码问题解决方案
Jan 11 Python
Python表达式的优先级详解
Feb 18 Python
python3爬虫中异步协程的用法
Jul 10 Python
python Zmail模块简介与使用示例
Dec 19 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
Jan 28 Python
Python 解决空列表.append() 输出为None的问题
May 23 Python
Django自定义分页与bootstrap分页结合
Feb 22 #Python
利用python写个下载teahour音频的小脚本
May 08 #Python
通过源码分析Python中的切片赋值
May 08 #Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
May 08 #Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
May 08 #Python
Python实现SSH远程登陆,并执行命令的方法(分享)
May 08 #Python
利用Celery实现Django博客PV统计功能详解
May 08 #Python
You might like
一个用于mysql的数据库抽象层函数库
2006/10/09 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
php去除头尾空格的2种方法
2015/03/16 PHP
PHP中preg_match函数正则匹配的字符串长度问题
2015/05/27 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
2016/11/09 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
2017/02/20 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
2017/06/13 jQuery
vue.js获得当前元素的文字信息方法
2018/03/09 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
js闭包的9个使用场景
2020/12/29 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
利用Python中的mock库对Python代码进行模拟测试
2015/04/16 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
Python实现图像几何变换
2015/07/06 Python
Pyqt5实现英文学习词典
2019/06/24 Python
Python Selenium 之数据驱动测试的实现
2019/08/01 Python
中国跨境电商:Tomtop
2017/03/16 全球购物
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
Cocopanda波兰:购买化妆品、护肤品、护发和香水
2020/05/25 全球购物
药学专业个人自我评价
2013/11/11 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
国贸专业求职信
2014/06/28 职场文书
田径运动会通讯稿
2015/07/18 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server