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()使用

os.path.dirname(__file__)使用的更多相关文章

  1. python中os.path.dirname(__file__) 命令行 参数没有绝对路径导致数据库找不到

    (1).当"print os.path.dirname(__file__)"所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径,比如: python d:/python ...

  2. python中的os.path.dirname(__file__)的使用

    在编程时,我们要获取当前文件所在的路径,以适合所有的工程,建立相对路径. python的os.path.dirname(__file__)非常好用,建议大家使用: import os FILE = o ...

  3. Python os.path.dirname(__file__) 与 Python os.path.abspath(__file__) 与 os.system() 函数

    Python  os.path.dirname(__file__) 与 Python os.path.abspath(__file__) 的区别 os.path.abspath(__file__)返回 ...

  4. 转: Python中的os.path.dirname(__file__)

     (1).当"print os.path.dirname(__file__)"所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径,比如:                 ...

  5. Python os.path.dirname(__file__) os.path.join(str,str)

    Python os.path.dirname(__file__) Python os.path.join(str,str)   (1).当"print os.path.dirname(__f ...

  6. Python——os.path.dirname(__file__) 与 os.path.join(str,str)

    Python os.path.dirname(__file__) Python os.path.join(str,str)   (1).当"print os.path.dirname(__f ...

  7. python中的os.path.dirname与os.path.dirname(__file__)的用法

    python中的os.path.dirname的用法 os.path.dirname(path) 语法:os.path.dirname(path) 功能:去掉文件名,返回目录 如: print(os. ...

  8. os.path.dirname(__file__)

    os.path.dirname(__file__) 返回脚本的路径 描述: 必须实际存在的.py文件,如果直接在命令行执行,则会引发异常NameError: name 'file' is not de ...

  9. os.path.dirname(__file__)使用、Python os.path.abspath(__file__)使用

    python中的os.path.dirname(__file__)的使用 - CSDN博客https://blog.csdn.net/u011760056/article/details/469698 ...

随机推荐

  1. ItemCF_基于物品的协同过滤

    ItemCF_基于物品的协同过滤 1.    概念 2.    原理 如何给用户推荐? 给用户推荐他没有买过的物品--103 3.    java代码实现思路 数据集: 第一步:构建物品的同现矩阵 第 ...

  2. SSO的几种跨域方案

    在此只是记录一下自己在尝试SSO跨域实现的过程中学到的几种跨域方案,不包含任何例子和具体的实现方法. 最近在尝试SSO的跨域,看了好多资料,然后自己记录了一下可以实现的方法: ①跳转所有站点设置coo ...

  3. 给APP增加RSA签名

    RSA签名,Google主要用于APP的来源控制与结算.所谓的结算,也是就是控制了APP只有使用现在机子上登录的Google账户从Google市场曾经下载过该APP的才能够使用,这样也就达到了app销 ...

  4. DHTML Object Model&DHTML&DOM

    DHTML Object Model:DHTML对象模型,利用DHTML Object Model可以单独操作页面上的对象,每个HTML标记通过它的ID和NAME属性被操纵,每个对象都具有自己的属性. ...

  5. UTF8字符串转换为汉字 c#

    using System; /// <summary> /// UTF8字符串转换为汉字用的类 /// 转换如"\\u8d35"之类的字符串为对应的汉字 /// < ...

  6. php常用函数——数组函数

    php常用函数——数组函数

  7. c# 使用httpclient

    using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using ...

  8. 144.Binary Tree Preorder Traversal---二叉树先序、中序非递归遍历

    题目链接 题目大意:返回二叉树的先序遍历list.中序见94,后序见145. 法一:普通递归遍历,只是这里多了一个list数组,所以分成了两个函数.代码如下(耗时1ms): public List&l ...

  9. 191.Number of 1Bits---位运算---《剑指offer》10

    题目链接:https://leetcode.com/problems/number-of-1-bits/description/ 题目大意:与338题类似,求解某个无符号32位整数的二进制表示的1的个 ...

  10. JavaScript 跳转 页面

    * window.location.href , self.location, window.location 出现问题不能跳转 Chome 不能本页跳转, IE 有时可以