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之??碌某?? target=
Sep 12 Python
Python基于twisted实现简单的web服务器
Sep 29 Python
对于Python装饰器使用的一些建议
Jun 03 Python
python比较两个列表大小的方法
Jul 11 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
Nov 03 Python
Python爬虫天气预报实例详解(小白入门)
Jan 24 Python
python滑块验证码的破解实现
Nov 10 Python
Linux下升级安装python3.8并配置pip及yum的教程
Jan 02 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
Sep 09 Python
python实现简单文件读写函数
Feb 25 Python
OpenCV-Python实现轮廓的特征值
Jun 09 Python
Python 恐龙跑跑小游戏实现流程
Feb 15 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中session过期时间设置及session回收机制介绍
2014/05/05 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
javascript showModalDialog,open取得父窗口的方法
2010/03/10 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
2016/04/14 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
2017/01/12 Javascript
JS验证字符串功能
2017/02/22 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
2017/04/13 Javascript
jquery 禁止鼠标右键并监听右键事件
2017/04/27 jQuery
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
vue2实现数据请求显示loading图
2017/11/28 Javascript
在vue 中使用 less的教程详解
2018/09/26 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
CountUp.js数字滚动插件使用方法详解
2019/10/17 Javascript
利用node.js开发cli的完整步骤
2020/12/29 Javascript
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
利用Opencv中Houghline方法实现直线检测
2018/02/11 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
selenium2.0中常用的python函数汇总
2019/08/05 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
浅析python标准库中的glob
2020/03/13 Python
丝芙兰新加坡官网:Sephora新加坡
2018/12/04 全球购物
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
犹他州最古老的体育用品公司:Al’s
2020/12/18 全球购物
幼儿园老师辞职信
2014/01/20 职场文书
教师学习培训邀请函
2014/02/04 职场文书
《临死前的严监生》教学反思
2014/02/13 职场文书
五好关工委申报材料
2014/05/31 职场文书
法院个人总结
2015/03/03 职场文书
政协工作总结2015
2015/05/20 职场文书
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS