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处理文本文件实现生成指定格式文件的方法
Jul 31 Python
Python通过递归遍历出集合中所有元素的方法
Feb 25 Python
Python自动化测试Eclipse+Pydev 搭建开发环境
Aug 15 Python
Python编程产生非均匀随机数的几种方法代码分享
Dec 13 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
Jun 11 Python
对numpy中shape的深入理解
Jun 15 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
Feb 16 Python
详解Django CAS 解决方案
Oct 30 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
Feb 17 Python
python实现飞船游戏的纵向移动
Apr 24 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
Oct 15 Python
教你使用TensorFlow2识别验证码
Jun 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
php ob_flush,flush在ie中缓冲无效的解决方法
2010/05/09 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
PHP入门之常量简介和系统常量
2014/05/12 PHP
php获取网站百度快照日期的方法
2015/07/29 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
javascript 函数调用规则
2009/08/26 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
每天一篇javascript学习小结(String对象)
2015/11/18 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
微信小程序实现提交input信息到后台的方法示例
2019/01/19 Javascript
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
python 提取文件的小程序
2009/07/29 Python
Python自动化测试工具Splinter简介和使用实例
2014/05/13 Python
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
Python3里的super()和__class__使用介绍
2015/04/23 Python
python中解析json格式文件的方法示例
2017/05/03 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
分享8点超级有用的Python编程建议(推荐)
2019/10/13 Python
Python列表切片常用操作实例解析
2019/12/16 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
2021/02/05 Python
Canvas 文字碰撞检测并抽稀的方法
2019/05/27 HTML / CSS
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
Fanatics官网:运动服装、球衣、运动装备
2020/10/12 全球购物
2014年后勤管理工作总结
2014/12/01 职场文书
中标通知书
2015/04/17 职场文书
Python超简单容易上手的画图工具库推荐
2021/05/10 Python
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers