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实现问号表达式(?)的方法
Nov 27 Python
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
Jun 04 Python
Python通过解析网页实现看报程序的方法
Aug 04 Python
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
Jun 14 Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 Python
python实现读Excel写入.txt的方法
Apr 29 Python
pandas DataFrame实现几列数据合并成为新的一列方法
Jun 08 Python
Ubuntu下Anaconda和Pycharm配置方法详解
Jun 14 Python
Python netmiko模块的使用
Feb 14 Python
python自动下载图片的方法示例
Mar 25 Python
解决阿里云邮件发送不能使用25端口问题
Aug 07 Python
Python+kivy BoxLayout布局示例代码详解
Dec 28 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 adodb操作mysql数据库
2009/03/19 PHP
PHP 面向对象 PHP5 中的常量
2010/05/05 PHP
PHP中的session永不过期的解决思路及实现方法分享
2011/04/20 PHP
php定界符
2014/06/19 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
2016/08/12 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
2019/05/30 PHP
基于jquery的二级联动菜单实现代码
2011/04/25 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
jquery解析json格式数据的方法(对象、字符串)
2015/11/24 Javascript
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
Three.js学习之正交投影照相机
2016/08/01 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
移动端效果之IndexList详解
2017/10/20 Javascript
layer弹出子iframe层父子页面传值的实现方法
2018/11/22 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
JS script脚本中async和defer区别详解
2020/06/24 Javascript
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
Python内建模块struct实例详解
2018/02/02 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
Django Form常用功能及代码示例
2020/10/13 Python
python 写一个水果忍者游戏
2021/01/13 Python
用纯css3和html制作泡沫对话框实现代码
2013/03/21 HTML / CSS
《胡杨》教学反思
2014/02/16 职场文书
如何签定毕业生就业协议书
2014/09/28 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
迎新生欢迎词2015
2015/07/16 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书
postgresql 删除重复数据案例详解
2021/08/02 PostgreSQL