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中的类与对象之描述符详解
Mar 27 Python
Python中用startswith()函数判断字符串开头的教程
Apr 07 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
Python中模块pymysql查询结果后如何获取字段列表
Jun 05 Python
kaggle+mnist实现手写字体识别
Jul 26 Python
使用django-guardian实现django-admin的行级权限控制的方法
Oct 30 Python
Python设计模式之组合模式原理与用法实例分析
Jan 11 Python
python实现对象列表根据某个属性排序的方法详解
Jun 11 Python
python实现的爬取电影下载链接功能示例
Aug 26 Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 Python
PIP和conda 更换国内安装源的方法步骤
Sep 21 Python
python实现在列表中查找某个元素的下标示例
Nov 16 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程序之die调试法 快速解决错误
2009/09/17 PHP
php面向对象全攻略 (十五) 多态的应用
2009/09/30 PHP
PHP 存储文本换行实现方法
2010/01/05 PHP
PHP的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
PHP CURL与java http使用方法详解
2018/01/26 PHP
提高网站信任度的技巧
2008/10/17 Javascript
JavaScript高级程序设计 DOM学习笔记
2011/09/10 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
Jquery使用Firefox FireBug插件调试Ajax步骤讲解
2013/12/02 Javascript
在JavaScript中使用timer示例
2014/05/08 Javascript
Node.js中调用mysql存储过程示例
2014/12/20 Javascript
js的回调函数详解
2015/01/05 Javascript
AngularJS实现表单验证
2015/01/28 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
2016/06/25 Javascript
防止Node.js中错误导致进程阻塞的办法
2016/08/11 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
2017/04/06 Javascript
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
在layui中使用form表单监听ajax异步验证注册的实例
2019/09/03 Javascript
vue组件入门知识全梳理
2020/09/21 Javascript
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
python数组复制拷贝的实现方法
2015/06/09 Python
Python从单元素字典中获取key和value的实例
2018/12/31 Python
python多线程高级锁condition简单用法示例
2019/11/07 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
校园网站的创业计划书范文
2013/12/30 职场文书
自动化专业个人求职信范文
2013/12/30 职场文书
工作保证书范文
2014/04/29 职场文书
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android