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基础教程之python消息摘要算法使用示例
Feb 10 Python
python海龟绘图实例教程
Jul 24 Python
Python实现二叉堆
Feb 03 Python
Python实现的桶排序算法示例
Nov 29 Python
numpy找出array中的最大值,最小值实例
Apr 03 Python
Python使用pylab库实现绘制直方图功能示例
Jun 01 Python
Python实现处理逆波兰表达式示例
Jul 30 Python
python matplotlib实现双Y轴的实例
Feb 12 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
Jun 24 Python
在pytorch中查看可训练参数的例子
Aug 18 Python
Python获取时间戳代码实例
Sep 24 Python
Pytorch 使用tensor特定条件判断索引
Apr 08 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
php mssql 时间格式问题
2009/01/13 PHP
国外比较好的几个的Php开源建站平台小结
2010/04/22 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
2015/01/07 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
2015/12/10 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
TextArea不支持maxlength的解决办法(jquery)
2011/09/13 Javascript
jquery中对于批量deferred的处理方法
2014/01/22 Javascript
详解JavaScript中的构造器Constructor模式
2016/01/14 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
微信小程序 Toast自定义实例详解
2017/01/20 Javascript
利用Node.js对文件进行重命名
2017/03/12 Javascript
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
js中document.write和document.writeln的区别
2018/03/11 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
python实现zencart产品数据导入到magento(python导入数据)
2014/04/03 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
Python正则捕获操作示例
2017/08/19 Python
python自动查询12306余票并发送邮箱提醒脚本
2018/05/21 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
pytorch实现用CNN和LSTM对文本进行分类方式
2020/01/08 Python
Python实现结构体代码实例
2020/02/10 Python
推荐8款常用的Python GUI图形界面开发框架
2020/02/23 Python
Python Selenium库的基本使用教程
2021/01/04 Python
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
医学专业职业生涯规划范文
2014/02/05 职场文书
运动会入场词60字
2014/02/15 职场文书
家教广告词
2014/03/19 职场文书
体育系毕业生求职自荐信
2014/04/16 职场文书
城南旧事观后感
2015/06/11 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
Win11更新失败并提示0xc1900101
2022/04/19 数码科技