os.path.dirname(__file__)使用

该测试脚本所在的位置:D:\第1层\第2层\第3层\第4层\第5层\test11.py

test11.py

  1. import os
  2. #该文件所在位置:D:\第1层\第2层\第3层\第4层\第5层\test11.py
  3. path1 = os.path.dirname(__file__)
  4. print(path1)#获取当前运行脚本的绝对路径
  5. path2 = os.path.dirname(os.path.dirname(__file__)) #
  6. print(path2)#获取当前运行脚本的绝对路径(去掉最后一个路径)
  7. path3 = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
  8. print(path3)#获取当前运行脚本的绝对路径(去掉最后2个路径)
  9. path4 = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
  10. print(path4)#获取当前运行脚本的绝对路径(去掉最后3个路径)
  11. path5 = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))))
  12. print(path5)#获取当前运行脚本的绝对路径(去掉最后4个路径)
  13. path6 = os.__file__                  #获取os所在的目录
  14. print(path6)

结果:

  1. C:\Python352\python.exe D:/第1层/第2层/第3层/第4层/第5层/test11.py
  2. D:/第1层/第2层/第3层/第4层/第5层
  3. D:/第1层/第2层/第3层/第4层
  4. D:/第1层/第2层/第3层
  5. D:/第1层/第2层
  6. D:/第1层
  7. C:\Python352\lib\os.py
  8. Process finished with exit code 0

解释:

http://blog.csdn.net/u011760056/article/details/46969883

os.path.dirname(__file__)返回脚本的路径,但是需要注意一下几点:

  • 必须是实际存在的.py文件,如果在命令行执行,则会引发异常NameError: name '__file__' is not defined;
  • 在运行的时候如果输入完整的执行的路径,则返回.py文件的全路径如:Python c:/test/test.py 则返回路径 c:/test ,如果是python test.py 则返回空;
  • 结合os.path.abspath用,效果会好,如果大家看过一些python架构的代码的话,会发现经常有这样的组合:os.path.dirname(os.path.abspath(__file__)),os.path.abspath(__file__)返回的是.py文件的绝对路径。

这就是os.path.dirname(__file__)的用法,其主要总结起来有:

  • 不要在命令行的形式来进行os.path.dirname(__file__)这种形式来使用这个函数;
  • 结合os.path.abspath()使用

最新文章

  1. CentOS 7 (RHEL 7)服务管理命令的变化
  2. MySQL数据库的高可用性分析
  3. NSS_08 extjs表单验证
  4. openstack deug
  5. 普通Jquery的ajax判断重复和formvalidator的ajaxValidator区别
  6. css3边框、阴影
  7. 网站开发常用jQuery插件总结(五)滚动条插件nanoscroller
  8. maven 根据不同的环境打war包-->资源文件的处理方式
  9. angularjs中异常处理
  10. winscp连接vmware ubuntu
  11. BIOS和CMOS的联系与区别
  12. Equations
  13. neo4j-cypher
  14. NodeManager介绍
  15. Android中糟糕的AsyncTask
  16. Effective C++ 随笔(2)
  17. 003_cd pushd popd三个命令的区别
  18. spring boot入门与进阶
  19. Typhoon-v1.02 靶机入侵
  20. 蜗牛慢慢爬 LeetCode 2. Add Two Numbers [Difficulty: Medium]

热门文章

  1. Bzoj2300 / 洛谷P2521 [HAOI2011]防线修建
  2. java规范之checkstyle
  3. CodeForces - 999C
  4. 论文里有公式?用texlive+texstudio(windows下)
  5. zedboard学习记录.1.纯PL流水灯
  6. Mysql储存过程6: in / out / inout
  7. 如何在LINUX中开机、登陆、退出、定时、定期自动运行程序
  8. 21.Merge Two Sorted Lists---《剑指offer》面试17
  9. 禁用quartz自动检查更新
  10. [写出来才有价值系列:node.js]node.js 01-介绍及安装