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中使用Queue和Condition进行线程同步的方法
Jan 19 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
Jun 01 Python
Python文本特征抽取与向量化算法学习
Dec 22 Python
Flask框架Flask-Principal基本用法实例分析
Jul 23 Python
python flask实现分页的示例代码
Aug 02 Python
python实现转盘效果 python实现轮盘抽奖游戏
Jan 22 Python
Python基础之文件读取的讲解
Feb 16 Python
python3对接mysql数据库实例详解
Apr 30 Python
浅谈python图片处理Image和skimage的区别
Aug 04 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
Aug 05 Python
基于python修改srt字幕的时间轴
Feb 03 Python
如何创建一个Flask项目并进行简单配置
Nov 18 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/04 冲泡冲煮
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
基于php设计模式中工厂模式详细介绍
2013/05/15 PHP
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
PHP实现定时执行任务的方法
2014/10/05 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
判断控件是否已加载完成的代码
2010/02/24 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
JS使用cookie设置样式的方法
2016/06/30 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
基于JS实现移动端左滑删除功能
2017/07/28 Javascript
10个在JavaScript开发中常遇到的BUG
2017/12/18 Javascript
解决easyui日期时间框ie的兼容的问题
2018/03/01 Javascript
基于Taro的微信小程序模板消息-获取formId功能模块封装实践
2019/07/15 Javascript
浅谈Vue为什么不能检测数组变动
2019/10/14 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
2019/11/09 Javascript
JS实现简单打字测试
2020/06/24 Javascript
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
浅谈Python实现Apriori算法介绍
2017/12/20 Python
pandas 转换成行列表进行读取与Nan处理的方法
2018/10/30 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
django如何通过类视图使用装饰器
2019/07/24 Python
python实现按首字母分类查找功能
2019/10/31 Python
python pygame实现球球大作战
2019/11/25 Python
Python爬虫HTPP请求方法有哪些
2020/06/03 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
党员岗位承诺口号大全
2014/03/28 职场文书
烛光里的微笑观后感
2015/06/17 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android
vue实现拖拽交换位置
2022/04/07 Vue.js