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”。

import os,sys

if __name__=="__main__":

print "__file__= %s" % __file__
print
print "os.path= %s" % os.path
print
print "os.path.realpath(__file__)= %s" % os.path.realpath(__file__)
print
print "os.path.dirname(os.path.realpath(__file__))= %s" % os.path.dirname(os.path.realpath(__file__))
print
print "os.path.split(os.path.realpath(__file__))= %s" % os.path.split(os.path.realpath(__file__))[0]
print
print "os.path.abspath(__file__)= %s" % os.path.abspath(__file__)
print
print "os.getcwd()= %s" % os.getcwd()
print
print "sys.path[0]= %s" % sys.path[0]
print
print "sys.argv[0]= %s" % sys.argv[0]



输出结果:

__file__= C:/Users/sys_syspifarm/.ssh/MagicBox/source/test.py

os.path= <module 'ntpath' from 'C:\Python27\lib\ntpath.pyc'>

os.path.realpath(__file__)= C:\Users\sys_syspifarm\.ssh\MagicBox\source\test.py

os.path.dirname(os.path.realpath(__file__))= C:\Users\sys_syspifarm\.ssh\MagicBox\source

os.path.split(os.path.realpath(__file__))= C:\Users\sys_syspifarm\.ssh\MagicBox\source

os.path.abspath(__file__)= C:\Users\sys_syspifarm\.ssh\MagicBox\source\test.py

os.getcwd()= C:\Users\sys_syspifarm\.ssh\MagicBox\source

sys.path[0]= C:\Users\sys_syspifarm\.ssh\MagicBox\source

sys.argv[0]= C:/Users/sys_syspifarm/.ssh/MagicBox/source/test.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] 

幸运之神的降临,往往只是因为你多看了一眼,多想了一下,多走了一步。

转载于:https://www.cnblogs.com/anita-harbour/p/9294229.html

python获取当前路径相关推荐

  1. python相对路径下的shell_shell,python获取当前路径(脚本的当前路径) (aso项目记录)...

    一.shell获取脚本当前路径 cur_dir=$(cd "$(dirname "$0")"; pwd) #获取当前脚本的绝对路径,参数$0是当前脚本对象 等同 ...

  2. python获取当前路径的方法_Python获取脚本所在目录的正确方法【转】

    原博文 2015-09-24 10:21 − 1.以前的方法如果是要获得程序运行的当前目录所在位置,那么可以使用os模块的os.getcwd()函数.如果是要获得当前执行的脚本的所在目录位置,那么需要 ...

  3. python获取当前路径和上一层路径_python获取当前路径和上一级路径

    围观人数: 3 标签:getc   当前目录   路径   print   bsp   获取   目录   dir   dirname """获取当前目录"&q ...

  4. Python 获取当前路径几种方法

    Python 获取当前路径的几种方法 绝对路径 1.os.path 方法 # -*- coding: utf-8 -*- # !/usr/bin/pythonimport os import sysc ...

  5. python获取当前路径下所有文件

    通过:[import os]来完成: import ospath = os.getcwd()#获取当前路径listDir=os.listdir(path)#获取当前目录下的所有内容for x in l ...

  6. python获取当前路径导包_python 通过文件夹导入包的操作

    通过文件夹导入包要求每个目录下都有一个__init__.py文件,此文件可空白.也可不空.a@ubuntu:~/Desktop$ tree myp myp ├── a │ ├── b.py │ └── ...

  7. python 获取脚本当前路径_Python获取脚本所在目录的正确方法

    http://www.jb51.net/article/49035.htm 文章主要介绍了Python获取脚本所在目录的正确方法 1.以前的方法如果是要获得程序运行的当前目录所在位置,那么可以使用os ...

  8. python3 获取当前路径_如何使用python3获取当前路径及os.path.dirname的使用

    这篇文章主要介绍了如何使用python3获取当前路径及os.path.dirname的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 方法一: ...

  9. python下载文件到指定目录-Python获取指定文件夹下的文件名的方法

    本文采用os.walk()和os.listdir()两种方法,获取指定文件夹下的文件名. 一.os.walk() 模块os中的walk()函数可以遍历文件夹下所有的文件. os.walk(top, t ...

  10. Python 获取当前文件夹所有文件名并写入到excel文件中

    在工作中,有时候,我们需要整理文件夹中的所有文件名称,并罗列在一张表格中.天哪,我的文件夹中有上千个文件,要一个个的复制粘贴吗?太麻烦了吧?今天,我们用Python来解决这个问题. 1. 使用方法: ...

最新文章

  1. spring实现listener(转)
  2. [WebApp]定宽网页设计下,固定宽度布局开发WebApp并实现多终端下WebApp布局自适应...
  3. html缓存特效代码,HTML特效代码
  4. java的知识点13——多态、对象的转型(casting)、final关键字、抽象方法和抽象类、接口的作用、如何定义和使用接口?、接口的多继承、面向接口编程
  5. Spring Boot-@Configuration注解
  6. Web前端行业的机遇与自我规划,如果你对未来没有方向 不如看一看,或许就是一道曙光!
  7. VMware Horizon虚拟桌面工具箱2.0-审计,远程协助,控制台,电源
  8. C#实现利用单选框实现更改文本的richTextBox字体、大小、加粗
  9. 【王道考研计算机网络】—计算机网络的概念 组成 功能 分类
  10. 洛谷 P1137 旅行计划
  11. 世界读书日 | 这11本书将颠覆技术人士的思维方式
  12. 3dmax 单位设置 系统单位设置和显示单位比例
  13. pngimg 可以商用吗_避免侵权!这10个免费可商用的图片网站,请一定收好
  14. vue3+百度地图:加载百度地图去除logo
  15. 招募中|一个小时变身AI应用部署专家,NVIDIA专场公开课 端云边缘协作
  16. 【考研英语-基础-长难句】复合句_定语从句【先行词 关系词】【限定_非限定性定语从句】层层递进关系
  17. 教你剪辑处理分割视频简单的方法
  18. netdisk error2
  19. Python卸载时提示发生严重错误!
  20. L1-043 阅览室 (20 分)andL1-048 矩阵A乘以B (15 分)

热门文章

  1. ArrayList 和 HaspMap 链式添加的实现
  2. UNIX哲学之我的实践【1】
  3. Hibernate的批量处理-批量更新
  4. PCB CS架构(工程系统)实现单点登入方法
  5. [Android]利用run-as命令在不root情况下读取data下面的数据
  6. pow,sqrt使用时需注意
  7. 数据结构学习记录连载1
  8. 调用天气接口获取天气预报
  9. Linux命令行学习日志-ps ax
  10. Android攻城狮——五布局