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 17 Python
Python、PyCharm安装及使用方法(Mac版)详解
Apr 28 Python
python3.x实现发送邮件功能
May 22 Python
python石头剪刀布小游戏(三局两胜制)
Jan 20 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
Apr 25 Python
妙用itchat! python实现久坐提醒功能
Nov 25 Python
Python批量处理csv并保存过程解析
May 16 Python
用python进行视频剪辑
Nov 02 Python
python实现定时发送邮件
Dec 23 Python
python接口自动化框架实战
Dec 23 Python
python和Appium的移动端多设备自动化测试框架
Apr 26 Python
python+opencv实现目标跟踪过程
Jun 21 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 增加了对 .ZIP 文件的读取功能
2006/10/09 PHP
PHP 内存缓存加速功能memcached安装与用法
2009/09/03 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
PHP正则表达式匹配替换与分割功能实例浅析
2017/02/04 PHP
前台js改变Session的值(用ajax实现)
2012/12/28 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
解决node-sass偶尔安装失败的方法小结
2018/12/05 Javascript
JS实现简易计算器
2020/02/14 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
javascript中call,apply,bind的区别详解
2020/12/11 Javascript
python list使用示例 list中找连续的数字
2014/01/27 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
linux安装Python3.4.2的操作方法
2018/09/28 Python
python 获取url中的参数列表实例
2018/12/18 Python
基于h5py的使用及数据封装代码
2019/12/26 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
Django缓存Cache使用详解
2020/11/30 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
Python Selenium操作Cookie的实例方法
2021/02/28 Python
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
2013/01/31 HTML / CSS
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
毕业生求职简历的自我评价
2013/10/23 职场文书
关于打架的检讨书
2014/01/17 职场文书
幼儿园大班新学期寄语
2014/01/18 职场文书
汽车装潢店创业计划书范文
2014/02/05 职场文书
数学高效课堂实施方案
2014/03/29 职场文书
2015年初三班主任工作总结
2015/05/21 职场文书
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL
使用 Koa + TS + ESLlint 搭建node服务器的过程详解
2022/05/30 NodeJs
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL