python获取程序执行文件路径的方法(推荐)


Posted in Python onApril 26, 2018

1.获取当前执行主脚本方法:sys.argv[0]和_ file _

(1)sys.argv

一个传给Python脚本的指令参数列表。sys.argv[0]是脚本的名字。一般得到的是相对路径,用os.path.abspath(sys.argv[0])得到执行文件的绝对路径:

dirname, filename = os.path.split(os.path.abspath(sys.argv[0])) 
os.path.realpath(sys.argv[0])

如果在命令行执行sys.argv返回解释器路径:[‘/Library/Frameworks/Python.framework/Versions/3.6/bin/ipython3']

(2)_ _ file_ _

获得当前执行模块所在的路径,一般为相对路径,用os.path.abspath(_ _ file_ _)得到执行文件的绝对路径:

dirname, filename = os.path.split(os.path.abspath( _ _ file_ _)) 
os.path.realpath(_ _ file_ _)

注意:Python控制台下,直接使用print _ _ file _ 是会导致 name ‘ _ file _ ' is not defined错误的,因为这时没有在任何一个脚本下执行,自然没有 _ file _ _的定义了。

(3)sys.argv[0]和_ _ file _ _的差异:在主执行文件中时,两者没什么差异,不过要是在不同的文件下,就不同了,如a.py,b.py这两个文件

python获取程序执行文件路径的方法(推荐)

python获取程序执行文件路径的方法(推荐)

执行a.py结果如下:

python获取程序执行文件路径的方法(推荐)

如上图结果可以看出:如果都是a.py两者结果无异,但是从在a中导入b时执行的sys.argv[0]还是指的是运行的主文件:a.py而_ _ file_ _却输出的是b.py

2.sys.path

模块搜索路径的字符串列表。由环境变量PYTHONPATH初始化得到。是一个目录的列表,sys.path[0]是调用Python解释器的当前脚本所在的目录,即主执行文件的父级目录。

例子:如在/user/ybp/a.py的文件a.py中执行:print(sys.path[0])==>/user/ybp,

在命令行执行返回空字符串;

3.注意os.path是系统环境变量,要与上面区分开来,没有os.path[0],os.path中的一些方法:

(1)os.path.split(path)

将路径名称分成头和尾一对。尾部永远不会带有斜杠。如果输入的路径以斜杠结尾,那么得到的空的尾部。

如果输入路径没有斜杠,那么头部位为空。如果输入路径为空,那么得到的头和尾都是空。

https://docs.python.org/2/library/os.path.html#os.path.split

(2)os.path.realpath(path)

返回特定文件名的绝对路径,可以在命令行中执行。

https://docs.python.org/2/library/os.path.html#os.path.realpath

4.os.getcwd()返回的是当前工作路径,而不一定需要是在脚本里面执行,这个命令相当于pwd,可以在命令行中执行,返回的是绝对路径;

以上这篇python获取程序执行文件路径的方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中一些自然语言工具的使用的入门教程
Apr 13 Python
python定时利用QQ邮件发送天气预报的实例
Nov 17 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
Feb 21 Python
TensorFlow saver指定变量的存取
Mar 10 Python
对Python3.6 IDLE常用快捷键介绍
Jul 16 Python
python读取Excel实例详解
Aug 17 Python
Python Series从0开始索引的方法
Nov 06 Python
浅谈Pandas:Series和DataFrame间的算术元素
Dec 22 Python
linux中如何使用python3获取ip地址
Jul 15 Python
使用python模拟命令行终端的示例
Aug 13 Python
Python Scrapy图片爬取原理及代码实例
Jun 12 Python
python中time tzset()函数实例用法
Feb 18 Python
python中的文件打开与关闭操作命令介绍
Apr 26 #Python
python3获取当前文件的上一级目录实例
Apr 26 #Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
Apr 26 #Python
python3中获取文件当前绝对路径的两种方法
Apr 26 #Python
python获取当前目录路径和上级路径的实例
Apr 26 #Python
python 删除非空文件夹的实例
Apr 26 #Python
Python3.5 创建文件的简单实例
Apr 26 #Python
You might like
PHP中for循环语句的几种变型
2006/11/26 PHP
php断点续传之如何分割合并文件
2014/03/22 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
微信支付的开发流程详解
2016/09/13 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
html的DOM中document对象forms集合用法实例
2015/01/21 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
javascript拖拽效果延伸学习
2016/04/04 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
ajax的分页查询示例(不刷新页面)
2017/01/11 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
分析JavaScript数组操作难点
2017/12/18 Javascript
vue操作动画的记录animate.css实例代码
2019/04/26 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
js如何验证密码强度
2020/03/18 Javascript
vue-cli3 热更新配置操作
2020/09/18 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
Django框架视图介绍与使用详解
2019/07/18 Python
Python实现语音识别和语音合成功能
2019/09/20 Python
Python爬虫教程知识点总结
2020/10/19 Python
python爬虫scrapy框架的梨视频案例解析
2021/02/20 Python
CSS3 创建网页动画实现弹跳球动效果
2018/10/30 HTML / CSS
Lentiamo丹麦:购买便宜的隐形眼镜
2021/01/13 全球购物
新闻专业应届生求职信
2013/10/31 职场文书
咖啡厅创业计划书范本
2014/01/22 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
关于九一八事变的演讲稿2014
2014/09/17 职场文书
教师学习十八届五中全会精神心得体会
2016/01/05 职场文书
2016暑期社会实践心得体会范文
2016/01/14 职场文书