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实现扫描指定目录下的子目录及文件的方法
Jul 16 Python
Python3里的super()和__class__使用介绍
Apr 23 Python
详解Python当中的字符串和编码
Apr 25 Python
详解Python中dict与set的使用
Aug 10 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 Python
对Python 多线程统计所有csv文件的行数方法详解
Feb 12 Python
python求最大值,不使用内置函数的实现方法
Jul 09 Python
django的ORM操作 删除和编辑实现详解
Jul 24 Python
使用Python求解带约束的最优化问题详解
Feb 11 Python
基于python实现检索标记敏感词并输出
May 07 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
Jun 11 Python
Pytorch distributed 多卡并行载入模型操作
Jun 05 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下检测字符串是否是utf8编码的代码
2008/06/28 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
Jquery easyui 下loaing效果示例代码
2013/08/12 Javascript
使用jquery.upload.js实现异步上传示例代码
2014/07/29 Javascript
微信企业号开发之微信考勤Cookies的使用
2015/09/11 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
2016/11/18 Javascript
JS匿名函数实例分析
2016/11/26 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
详解Vue路由钩子及应用场景(小结)
2017/11/07 Javascript
js中的 || 与 && 运算符详解
2018/05/24 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
2018/10/24 Javascript
vue中jsonp插件的使用方法示例
2020/09/10 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
深入解析Python编程中JSON模块的使用
2015/10/15 Python
python实现基于SVM手写数字识别功能
2020/05/27 Python
Python MySQLdb 使用utf-8 编码插入中文数据问题
2018/03/13 Python
Pytorch之view及view_as使用详解
2019/12/31 Python
基于Python实现天天酷跑功能
2021/01/06 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
Lacoste澳大利亚官网:服装、鞋类及配饰
2018/11/14 全球购物
白俄罗斯大卖场:21vek.by
2019/07/25 全球购物
医学专业应届生的自我评价
2014/02/28 职场文书
高三家长寄语
2014/04/03 职场文书
研究生导师推荐信
2014/09/06 职场文书
校运动会广播稿300字
2014/10/07 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
《角的初步认识》教学反思
2016/02/17 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python