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常用正则表达式符号浅析
Aug 13 Python
python基础教程之五种数据类型详解
Jan 12 Python
Python实现的排列组合计算操作示例
Oct 13 Python
[原创]python爬虫(入门教程、视频教程)
Jan 08 Python
Python List cmp()知识点总结
Feb 18 Python
PyQt5 加载图片和文本文件的实例
Jun 14 Python
详解Python 调用C# dll库最简方法
Jun 20 Python
Python实现朴素贝叶斯的学习与分类过程解析
Aug 24 Python
Python3实现zip分卷压缩过程解析
Oct 09 Python
Python socket模块方法实现详解
Nov 05 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
Nov 22 Python
Python爬虫UA伪装爬取的实例讲解
Feb 19 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和ACCESS写聊天室(三)
2006/10/09 PHP
简单的PHP留言本实例代码
2010/05/09 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
2016/01/28 PHP
利用javascript实现一些常用软件的下载导航
2009/08/03 Javascript
js读取配置文件自写
2014/02/11 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
树结构之JavaScript
2017/01/24 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
2019/12/04 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
[05:59]2018DOTA2国际邀请赛寻真——只为胜利的Secret
2018/08/13 DOTA
python实现进程间通信简单实例
2014/07/23 Python
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
对于Python装饰器使用的一些建议
2015/06/03 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
把csv文件转化为数组及数组的切片方法
2018/07/04 Python
python 多线程串行和并行的实例
2019/02/22 Python
python numpy实现文件存取的示例代码
2019/05/26 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
Viking Direct爱尔兰:办公用品和家具
2019/11/21 全球购物
Servlet如何得到服务器的信息
2015/12/22 面试题
让世界充满爱演讲稿
2014/05/24 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
Nginx快速入门教程
2021/03/31 Servers
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL
基于Python实现射击小游戏的制作
2022/04/06 Python