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创建线程示例
May 06 Python
python和C语言混合编程实例
Jun 04 Python
让python 3支持mysqldb的解决方法
Feb 14 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
解决Django的request.POST获取不到内容的问题
May 28 Python
Python简单爬虫导出CSV文件的实例讲解
Jul 06 Python
python实现几种归一化方法(Normalization Method)
Jul 31 Python
使用Python实现将多表分批次从数据库导出到Excel
May 15 Python
基于python requests selenium爬取excel vba过程解析
Aug 12 Python
PyQt5结合matplotlib绘图的实现示例
Sep 15 Python
Python类绑定方法及非绑定方法实例解析
Oct 09 Python
Python排序函数的使用方法详解
Dec 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实现水仙花数的4个示例分享
2014/04/08 PHP
PHP中字符安全过滤函数使用小结
2015/02/25 PHP
PHP命名空间和自动加载类
2016/04/03 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
laravel orm 关联条件查询代码
2019/10/21 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
2017/11/24 Javascript
三步实现ionic3点击退出app程序
2019/09/17 Javascript
浅谈vue websocket nodeJS 进行实时通信踩到的坑
2020/09/22 NodeJs
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
Windows下搭建python开发环境详细步骤
2020/07/20 Python
Python中的pack和unpack的使用
2018/03/12 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
Python爬虫爬取Bilibili弹幕过程解析
2019/10/10 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
python如何实现图片压缩
2020/09/11 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
海量信息软件测试笔试题
2015/08/08 面试题
商务英语大学生职业生涯规划书范文
2014/01/01 职场文书
医院总经理岗位职责
2014/02/04 职场文书
教师个人自我鉴定
2014/02/08 职场文书
行政人事专员岗位职责
2014/03/05 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
2015年扫黄打非工作总结
2015/05/13 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
Python Django模型详解
2021/10/05 Python