os.path.dirname(__file__)使用
os.path.dirname(__file__)使用
该测试脚本所在的位置:D:\第1层\第2层\第3层\第4层\第5层\test11.py
test11.py
- import os
- #该文件所在位置:D:\第1层\第2层\第3层\第4层\第5层\test11.py
- path1 = os.path.dirname(__file__)
- print(path1)#获取当前运行脚本的绝对路径
- path2 = os.path.dirname(os.path.dirname(__file__)) #
- print(path2)#获取当前运行脚本的绝对路径(去掉最后一个路径)
- path3 = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
- print(path3)#获取当前运行脚本的绝对路径(去掉最后2个路径)
- path4 = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
- print(path4)#获取当前运行脚本的绝对路径(去掉最后3个路径)
- path5 = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))))
- print(path5)#获取当前运行脚本的绝对路径(去掉最后4个路径)
- path6 = os.__file__ #获取os所在的目录
- print(path6)
结果:
- C:\Python352\python.exe D:/第1层/第2层/第3层/第4层/第5层/test11.py
- D:/第1层/第2层/第3层/第4层/第5层
- D:/第1层/第2层/第3层/第4层
- D:/第1层/第2层/第3层
- D:/第1层/第2层
- D:/第1层
- C:\Python352\lib\os.py
- 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__)使用的更多相关文章
- python中os.path.dirname(__file__) 命令行 参数没有绝对路径导致数据库找不到
(1).当"print os.path.dirname(__file__)"所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径,比如: python d:/python ...
- python中的os.path.dirname(__file__)的使用
在编程时,我们要获取当前文件所在的路径,以适合所有的工程,建立相对路径. python的os.path.dirname(__file__)非常好用,建议大家使用: import os FILE = o ...
- 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__)返回 ...
- 转: Python中的os.path.dirname(__file__)
(1).当"print os.path.dirname(__file__)"所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径,比如: ...
- 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 ...
- 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 ...
- python中的os.path.dirname与os.path.dirname(__file__)的用法
python中的os.path.dirname的用法 os.path.dirname(path) 语法:os.path.dirname(path) 功能:去掉文件名,返回目录 如: print(os. ...
- os.path.dirname(__file__)
os.path.dirname(__file__) 返回脚本的路径 描述: 必须实际存在的.py文件,如果直接在命令行执行,则会引发异常NameError: name 'file' is not de ...
- os.path.dirname(__file__)使用、Python os.path.abspath(__file__)使用
python中的os.path.dirname(__file__)的使用 - CSDN博客https://blog.csdn.net/u011760056/article/details/469698 ...
随机推荐
- 【CodeForces】913 E. Logical Expression
[题目]E. Logical Expression [题意]令x=11110000(2),y=11001100(2),z=10101010(2),n次询问,每次要求用[与][或][非][括号]构成含至 ...
- 【AtCoder】ARC086 E - Smuggling Marbles
[题目]E - Smuggling Marbles [题意]给定n+1个点的树(root=0),每个点可以选择放或不放弹珠,每一轮顺序进行以下操作: 1.将根节点0的弹珠加入答案. 2.每个点的弹珠移 ...
- js和php的时间戳和时间的转化
js时间戳转化为时间 //时间戳转时间 function time(sj) { var now = new Date(sj*1000); var year =now.getFullYear(); va ...
- 推箱子 BFS
[编程题] 推箱子 大家一定玩过“推箱子”这个经典的游戏.具体规则就是在一个N*M的地图上,有1个玩家.1个箱子.1个目的地以及若干障碍,其余是空地.玩家可以往上下左右4个方向移动,但是不能移动出地图 ...
- 信息收集之zoomeye
一.浏览器上使用api接口 1.https://api.zoomeye.org/user/login post传参:{"username" : "username&quo ...
- JWT机制了解
JWT简介 JSON Web Token(JWT)是一个开放式标准(RFC 7519),它定义了一种紧凑(Compact)且自包含(Self-contained)的方式,用于在各方之间以JSON对象安 ...
- Codeforces 870E Points, Lines and Ready-made Titles 计数
题目链接 题意 给定二维坐标上的\(n\)个点,过每个点可以 画一条水平线 或 画一条竖直线 或 什么都不画,并且若干条重合的直线被看做同一条.问共可能得到多少幅不同的画面? 题解 官方题解 仆の瞎扯 ...
- 首次成功的web渗透
web渗透 今天给大家讲一个最近做的一件令我振奋的一件事情 渗透培训刚刚结束的第二天 我在公网上挖到了我人生中的第一个站 总体来说个人真的很振奋人心 这个网站还没有进行更改但我已经通知了他们 ...
- logging模块配置笔记
logging模块配置笔记 log文件的路径 #判断在当前的目录下是否有一个logs文件夹.没有则创建 log_dir = os.path.dirname(os.path.dirname(__file ...
- 多播知识by 陈胜君
简单的讲一下多拨的说明:一.多拨分物理多拨和虚拟多拨. 物理多拨是电信老套餐,就是一个宽带支持四个内网设备同时拨号上网,即2004年以前,允许家里四台电脑直接连LAN网口启动拨号,同时允许四拨在线.现 ...