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中的包和模块实例
Nov 22 Python
使用IronPython把Python脚本集成到.NET程序中的教程
Mar 31 Python
python字符串的常用操作方法小结
May 21 Python
初学python的操作难点总结(新手必看篇)
Aug 03 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
Mar 20 Python
Python3编码问题 Unicode utf-8 bytes互转方法
Oct 26 Python
python直接获取API传递回来的参数方法
Dec 17 Python
Python 从一个文件中调用另一个文件的类方法
Jan 10 Python
使用Python三角函数公式计算三角形的夹角案例
Apr 15 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
May 19 Python
Python中用xlwt制作表格实例讲解
Nov 05 Python
用python删除文件夹中的重复图片(图片去重)
May 12 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写的采集程序
2007/03/16 PHP
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
2008/05/26 PHP
Laravel框架实现的批量删除功能示例
2019/01/16 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
Javascript中的常见排序算法
2007/03/27 Javascript
Add a Table to a Word Document
2007/06/15 Javascript
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
浅谈js的异步执行
2016/10/18 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
深入浅析vue中cross-env的使用
2019/09/12 Javascript
js属性对象的hasOwnProperty方法的使用
2021/02/05 Javascript
Python 打印中文字符的三种方法
2018/08/14 Python
对Python协程之异步同步的区别详解
2019/02/19 Python
selenium获取当前页面的url、源码、title的方法
2019/06/12 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
CSS3 calc()会计算属性详解
2018/02/27 HTML / CSS
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
用友笔试题目
2016/10/25 面试题
护理专业自我鉴定
2014/01/30 职场文书
公休请假条
2014/04/11 职场文书
销售个人求职信范文
2014/04/28 职场文书
2015年入党决心书
2015/02/05 职场文书
学校中秋节活动总结
2015/03/23 职场文书
新手入门Mysql--sql执行过程
2021/06/20 MySQL
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis
javascript函数式编程基础
2021/09/15 Javascript
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android