python中获取执行脚本路径方法
1、sys.path[0]:获取执行脚本目录绝对路径
#每次执行脚本时,python会将执行脚本目录加入PYTHONPATH环境变量中(sys.path获取)
#!/usr/bin/python3 import os
import sys print(sys.path)
print(sys.path[])
执行结果:
[root@localhost tmp]# ./py_test1/pytest24.py
['/tmp/py_test1', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages', '/usr/local/lib/python3.6/site-packages/pip-9.0.1-py3.6.egg']
/tmp/py_test1
2、sys.argv[0]:获取脚本执行本身路径;
#!/usr/bin/python3 import os
import sys print(sys.argv[])
执行1结果:
[root@localhost tmp]# ./py_test1/pytest24.py #相对路径执行脚本则会返回相对路径
./py_test1/pytest24.py
执行2结果:
[root@localhost tmp]# /tmp/py_test1/pytest24.py #绝对路径执行脚本则返回绝对路径
/tmp/py_test1/pytest24.py
注:sys.argv[0]获取得不是脚本目录路径,而是脚本本身执行时的路径!
3、__file__:同sys.argv[0]相似,获取脚本执行本身路径:
#!/usr/bin/python3 import os
import sys print("sys.argv[0] Output:",sys.argv[])
print("__file Output:",__file__)
执行1结果:
[root@localhost tmp]# ./py_test1/pytest24.py #相对路径执行脚本则会返回相对路径
sys.argv[] Output: ./py_test1/pytest24.py
__file Output: ./py_test1/pytest24.p 执行2结果:
[root@localhost tmp]# /tmp/py_test1/pytest24.py #绝对路径执行脚本则会返回绝对路径
sys.argv[] Output: /tmp/py_test1/pytest24.py
__file Output: /tmp/py_test1/pytest24.py
注:__file__获取得不是脚本目录路径,而是脚本本身执行时的路径!
4、os.path.abspath(__file__)和os.path.realpath(__file__):获取脚本执行本身的绝对路径
通过获取__file__路径,然后转换成绝对路径
#!/usr/bin/python3 import os
import sys print("__file Output:",__file__)
print(os.path.abspath(__file__))
print(os.path.realpath(__file__))
执行结果:
[root@localhost tmp]# ./py_test1/pytest24.py
__file Output: ./py_test1/pytest24.py
/tmp/py_test1/pytest24.py
/tmp/py_test1/pytest24.py
注:os.path.abspath(__file__)和os.path.realpath(__file__)获取得是脚本本身的绝对路径!
python中获取执行脚本路径方法的更多相关文章
- PowerShell因为在此系统中禁止执行脚本解决方法
PowerShell因为在此系统中禁止执行脚本解决方法 在Powershell直接脚本时会出现: 无法加载文件 ******.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 " ...
- Python中获取异常(Exception)信息
异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置.下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try...except...程序 ...
- linux c程序中获取shell脚本输出的实现方法
linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作. ...
- Oracle中获取执行计划的几种方法分析
以下是对Oracle中获取执行计划的几种方法进行了详细的分析介绍,需要的朋友可以参考下 1. 预估执行计划 - Explain PlanExplain plan以SQL语句作为输入,得到这条S ...
- Java中获取项目根路径和类加载路径的7种方法
引言 在web项目开发过程中,可能会经常遇到要获取项目根路径的情况,那接下来我就总结一下,java中获取项目根路径的7种方法,主要是通过thisClass和System,线程和request等方法. ...
- android中获取root权限的方法以及原理(转)
一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识. 二. Root 的介绍 1. Root 的目的 可以让我们拥有 ...
- Python中防止sql注入的方法详解
SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库.下面这篇文章主要给大家介绍了关于Python中 ...
- Bash:获取当前脚本路径
可以使用readlink命令必须加上-f参数,readlink用于读取链接文件所指向的文件,这样对于一些建立了软连接的脚本文件的话非常适用,而对于一般的脚本文件需要加上-f参数否则readlink文件 ...
- 【转】C#路径中获取文件全路径、目录、扩展名、文件名称
C#路径中获取文件全路径.目录.扩展名.文件名称 原文链接:https://www.cnblogs.com/JiYF/p/6879139.html 常用函数 需要引用System.IO 直接可以调 ...
随机推荐
- 使用IDEA创建Java Web项目并部署
前面给大家介绍了IDEA的安装和基本配置,睡觉前Alan再给大家分享一下使用IDEA创建Java Web并部署访问. 打开IDEA,File>New>Project,进入Java Ente ...
- .NET(C#)使用Serialize、Deserialize序列和反序列化XML文档
本文给大家分享一下C#操作(读取.写入)XML文档的实用方法,即用.NET本身提供的Deserialize和Serialize进行反序列化和序列化XML文档.这种方法主要是对比较规范的XML文档进行操 ...
- 用例设计之API用例覆盖准则
基本原则 本文主要讨论API测试的用例/场景覆盖,基本原则如下: 用户场景闭环(从哪来到哪去) 遍历所有的实现逻辑路径 需求点覆盖 覆盖维度 API协议(参数&业务场景) 中间件检查 异常场景 ...
- 【前端】NodeJs包管理工具NPM
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS部署上的很多问题. 测试是否安装成功,出现版本提示表示安装成功. npm -v NPM常用命令 官方文档:https://www.npm ...
- http的断点续传
要实现断点续传的功能,通常都需要客户端记录下当前的下载进度,并在需要续传的时候通知服务端本次需要下载的内容片段. HTTP1.1协议(RFC2616)中定义了断点续传相关的HTTP头 Range和Co ...
- [Spark Core] Spark Shell 实现 Word Count
0. 说明 在 Spark Shell 实现 Word Count RDD (Resilient Distributed dataset), 弹性分布式数据集. 示意图 1. 实现 1.1 分步实现 ...
- javascript,object,IDispatchEx笔记
//js: var testObj=new Object; //com内部: testObj=Object::InvokeEx(wFlags==DISPATCH_CONSTRUCT); //注: // ...
- python基本语法:
http://www.runoob.com/python/python-basic-syntax.html
- 在Word2007,2010,2016中分栏但不换页的方法
解决方法: word2007:界面左上角的按钮->选择word选项->依次点击“高级”->“版式选项”->点开加号,“按word6.x/95/97的方式排放脚注”. Word2 ...
- ELK (Elasticsearch+Logstash+Kibana)部署
部署机器: 服务端:dev-server X.X.X.X ( logstash-1.5.4,elasticsearch-1.7.1,kibana-4.1.1 ) 客户端:dev-cli ...