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实现斐波那契递归函数的方法
Sep 08 Python
Python闭包实现计数器的方法
May 05 Python
Python中音频处理库pydub的使用教程
Jun 07 Python
关于python写入文件自动换行的问题
Jun 23 Python
python使用folium库绘制地图点击框
Sep 21 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
Nov 06 Python
深入浅析python 协程与go协程的区别
May 09 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
Apr 02 Python
Keras自动下载的数据集/模型存放位置介绍
Jun 19 Python
python中selenium库的基本使用详解
Jul 31 Python
使用Python将语音转换为文本的方法
Aug 10 Python
Django3中的自定义用户模型实例详解
Aug 23 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中使用Oracle数据库(3)
2006/10/09 PHP
php实现的递归提成方案实例
2015/11/14 PHP
Yii中表单用法实例详解
2016/01/05 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
php mongodb操作类 带几个简单的例子
2016/08/25 PHP
Javascript Object.extend
2010/05/18 Javascript
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
2013/04/08 Javascript
Js放到HTML文件中的哪个位置有什么区别
2013/08/21 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
2017/01/19 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
JS实现常见的查找、排序、去重算法示例
2018/05/21 Javascript
微信小程序canvas拖拽、截图组件功能
2018/09/04 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
2020/11/12 Javascript
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
利用Python的Django框架生成PDF文件的教程
2015/07/22 Python
Python 数据结构之旋转链表
2017/02/25 Python
利用Anaconda完美解决Python 2与python 3的共存问题
2017/05/25 Python
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
Python装饰器语法糖
2019/01/02 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
python中取绝对值简单方法总结
2020/07/24 Python
使用CSS禁止textarea调整大小功能的方法
2015/03/13 HTML / CSS
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
机电专业毕业生求职信
2013/10/27 职场文书
会议邀请书范文
2014/02/02 职场文书
社区党建工作方案
2014/06/10 职场文书
辞职信的写法
2015/02/27 职场文书
幼儿园教师管理制度
2015/08/05 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
2019银行竞聘书
2019/06/21 职场文书
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL
关于 Python json中load和loads区别
2021/11/07 Python