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 相关文章推荐
Python3.x版本中新的字符串格式化方法
Apr 24 Python
Python中time模块与datetime模块在使用中的不同之处
Nov 24 Python
安装ElasticSearch搜索工具并配置Python驱动的方法
Dec 22 Python
Django基础之Model操作步骤(介绍)
May 27 Python
Python基于numpy灵活定义神经网络结构的方法
Aug 19 Python
Python字典创建 遍历 添加等实用基础操作技巧
Sep 13 Python
python合并已经存在的sheet数据到新sheet的方法
Dec 11 Python
python3.6下Numpy库下载与安装图文教程
Apr 02 Python
Python semaphore evevt生产者消费者模型原理解析
Mar 18 Python
opencv 图像礼帽和图像黑帽的实现
Jul 07 Python
python 检测nginx服务邮件报警的脚本
Dec 31 Python
两行代码解决Jupyter Notebook中文不能显示的问题
Apr 24 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修改session_id示例代码
2014/01/08 PHP
php中call_user_func函数使用注意事项
2014/11/21 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
Windows服务器中PHP如何安装redis扩展
2019/09/27 PHP
不同浏览器的怪癖小结
2010/07/11 Javascript
JS实现的一个简单的Autocomplete自动完成例子
2014/04/16 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
Vue2 Vue-cli中使用Typescript的配置详解
2017/07/24 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
一文搞懂ES6中的Map和Set
2019/05/20 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
Python3.8中使用f-strings调试
2019/05/22 Python
Keras使用ImageNet上预训练的模型方式
2020/05/23 Python
Python网页解析器使用实例详解
2020/05/30 Python
Python csv文件记录流程代码解析
2020/07/16 Python
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
SQL面试题
2013/04/30 面试题
史上最全面的Java面试题汇总!
2015/02/03 面试题
市场营销求职信范文
2014/02/21 职场文书
合伙经营协议书
2014/04/18 职场文书
品牌服务方案
2014/06/03 职场文书
党员民主生活会对照检查材料思想汇报
2014/09/28 职场文书
2016自主招生校长推荐信范文
2015/03/23 职场文书
工作时间证明
2015/06/15 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
高中数学教学反思范文
2016/02/18 职场文书
人民调解协议书
2016/03/21 职场文书
调研报告的主要写法
2019/04/18 职场文书