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关闭windows进程的方法
Apr 18 Python
python使用pymysql实现操作mysql
Sep 13 Python
Python:Scrapy框架中Item Pipeline组件使用详解
Dec 27 Python
python/sympy求解矩阵方程的方法
Nov 08 Python
python+opencv实现高斯平滑滤波
Jul 21 Python
Python字符串的全排列算法实例详解
Jan 07 Python
Python实现的列表排序、反转操作示例
Mar 13 Python
python中时间转换datetime和pd.to_datetime详析
Aug 11 Python
Python实现动态给类和对象添加属性和方法操作示例
Feb 29 Python
Python图片处理模块PIL操作方法(pillow)
Apr 07 Python
jupyter notebook 实现matplotlib图动态刷新
Apr 22 Python
Python 绘制多因子柱状图
May 11 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/02/27 无线电
深入理解PHP原理之异常机制
2010/08/21 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
菜鸟javascript基础资料整理2
2010/12/06 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
JavaScript之Object类型介绍
2015/04/01 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
完美的js div拖拽实例代码
2016/09/24 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
webpack配置导致字体图标无法显示的解决方法
2018/03/06 Javascript
JavaScript 下载svg图片为png格式
2018/06/21 Javascript
layer弹出层自定义提交取消按钮的例子
2019/09/10 Javascript
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
Python的Flask开发框架简单上手笔记
2015/11/16 Python
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
python编写暴力破解zip文档程序的实例讲解
2018/04/24 Python
python 使用事件对象asyncio.Event来同步协程的操作
2020/05/04 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
keras 解决加载lstm+crf模型出错的问题
2020/06/10 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
基于Python中Remove函数的用法讨论
2020/12/11 Python
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
数学系个人求职信范文
2014/01/30 职场文书
求职信结尾怎么写
2014/05/26 职场文书
乡镇党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
企业办公室主任岗位职责
2015/04/01 职场文书
2019求职信:应届生求职信范文
2019/04/24 职场文书
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python