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中datetime常用时间处理方法
Jun 15 Python
详解常用查找数据结构及算法(Python实现)
Dec 09 Python
Python常用内置模块之xml模块(详解)
May 23 Python
Python 查看文件的读写权限方法
Jan 23 Python
python实现RabbitMQ的消息队列的示例代码
Nov 08 Python
Django中的cookie和session
Aug 27 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
Jan 06 Python
python实现简单坦克大战
Mar 27 Python
在 Pycharm 安装使用black的方法详解
Apr 02 Python
基于TensorFlow的CNN实现Mnist手写数字识别
Jun 17 Python
Pycharm配置lua编译环境过程图解
Nov 28 Python
Python 中的 copy()和deepcopy()
Nov 07 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中is_file不能替代file_exists的理由
2014/03/04 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
PHP构造函数与析构函数用法示例
2016/09/28 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
extjs 时间范围选择自动判断的实现代码
2014/06/24 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
JS+Canvas绘制时钟效果
2020/08/20 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
2016/10/30 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
2017/03/01 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
webpack4.x开发环境配置详解
2018/08/04 Javascript
webpack多入口多出口的实现方法
2018/08/17 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
Python sorted函数详解(高级篇)
2018/09/18 Python
Python元组常见操作示例
2019/02/19 Python
python开发游戏的前期准备
2019/05/05 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
资料员的岗位职责
2013/11/20 职场文书
宿舍打麻将检讨书
2014/01/24 职场文书
2014端午节活动策划方案
2014/01/27 职场文书
护士求职自荐信范文
2014/03/19 职场文书
人力资源职位说明书
2014/07/29 职场文书
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
2014大学生学生会工作总结
2014/12/19 职场文书
任命书怎么写
2015/03/02 职场文书
Go语言中的UTF-8实现
2021/04/26 Golang
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android