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 相关文章推荐
django框架如何集成celery进行开发
May 24 Python
对python numpy数组中冒号的使用方法详解
Apr 17 Python
Python干货:分享Python绘制六种可视化图表
Aug 27 Python
PyQt5图形界面播放音乐的实例
Jun 17 Python
Django中信号signals的简单使用方法
Jul 04 Python
django使用django-apscheduler 实现定时任务的例子
Jul 20 Python
Django处理Ajax发送的Get请求代码详解
Jul 29 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
python使用正则表达式(Regular Expression)方法超详细
Dec 30 Python
Selenium使用Chrome模拟手机浏览器方法解析
Apr 10 Python
PyTorch中的拷贝与就地操作详解
Dec 09 Python
python flappy bird小游戏分步实现流程
Feb 15 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
世界上第一台立体声收音机
2021/03/01 无线电
中篇:安装及配置PHP
2006/12/13 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
永不消失的title提示代码
2007/02/15 Javascript
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
移动节点的jquery代码
2014/01/13 Javascript
创建、调用JavaScript对象的方法集锦
2014/12/24 Javascript
前端框架Vue.js中Directive知识详解
2016/09/12 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
解决vue keep-alive 数据更新的问题
2018/09/21 Javascript
JS中如何轻松遍历对象属性的方式总结
2019/08/06 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
Python struct.unpack
2008/09/06 Python
wxpython 学习笔记 第一天
2009/03/16 Python
如何在Python函数执行前后增加额外的行为
2016/10/20 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
Python如何脚本过滤文件中的注释
2020/05/27 Python
python可以用哪些数据库
2020/06/22 Python
Python自动化操作实现图例绘制
2020/07/09 Python
实例讲解使用CSS实现多边框和透明边框的方法
2015/09/08 HTML / CSS
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
Html5之title吸顶功能
2018/06/04 HTML / CSS
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
教师个人鉴定材料
2014/02/08 职场文书
设计专业毕业生求职信
2014/06/25 职场文书
查摆问题整改措施
2014/10/24 职场文书
农业项目投资意向书
2015/05/09 职场文书
大学运动会加油稿
2015/07/22 职场文书
2016年情人节广告语
2016/01/28 职场文书
Python基础 括号()[]{}的详解
2021/11/07 Python