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中获取执行脚本路径方法的更多相关文章

  1. PowerShell因为在此系统中禁止执行脚本解决方法

    PowerShell因为在此系统中禁止执行脚本解决方法   在Powershell直接脚本时会出现: 无法加载文件 ******.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 " ...

  2. Python中获取异常(Exception)信息

    异常信息的获取对于程序的调试非常重要,可以有助于快速定位有错误程序语句的位置.下面介绍几种python中获取异常信息的方法,这里获取异常(Exception)信息采用try...except...程序 ...

  3. linux c程序中获取shell脚本输出的实现方法

    linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作. ...

  4. Oracle中获取执行计划的几种方法分析

    以下是对Oracle中获取执行计划的几种方法进行了详细的分析介绍,需要的朋友可以参考下     1. 预估执行计划 - Explain PlanExplain plan以SQL语句作为输入,得到这条S ...

  5. Java中获取项目根路径和类加载路径的7种方法

    引言 在web项目开发过程中,可能会经常遇到要获取项目根路径的情况,那接下来我就总结一下,java中获取项目根路径的7种方法,主要是通过thisClass和System,线程和request等方法. ...

  6. android中获取root权限的方法以及原理(转)

    一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识. 二. Root 的介绍 1. Root 的目的 可以让我们拥有 ...

  7. Python中防止sql注入的方法详解

    SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库.下面这篇文章主要给大家介绍了关于Python中 ...

  8. Bash:获取当前脚本路径

    可以使用readlink命令必须加上-f参数,readlink用于读取链接文件所指向的文件,这样对于一些建立了软连接的脚本文件的话非常适用,而对于一般的脚本文件需要加上-f参数否则readlink文件 ...

  9. 【转】C#路径中获取文件全路径、目录、扩展名、文件名称

    C#路径中获取文件全路径.目录.扩展名.文件名称 原文链接:https://www.cnblogs.com/JiYF/p/6879139.html 常用函数 需要引用System.IO   直接可以调 ...

随机推荐

  1. 机器学习实战(Machine Learning in Action)学习笔记————08.使用FPgrowth算法来高效发现频繁项集

    机器学习实战(Machine Learning in Action)学习笔记————08.使用FPgrowth算法来高效发现频繁项集 关键字:FPgrowth.频繁项集.条件FP树.非监督学习作者:米 ...

  2. SQLSERVER NULL和空字符串的区别 使用NULL是否节省空间

    SQLSERVER NULL和空字符串的区别 使用NULL是否节省空间 这里只讨论字符串类型,int.datetime.text这些数据类型就不讨论了,因为是否节省空间是根据数据类型来定的 在写这篇文 ...

  3. 使用 Visual Studio Team Services 和 IIS 创建持续集成管道

    若要将应用程序开发的生成.测试和部署阶段自动化,可以使用持续集成和部署 (CI/CD) 管道. 本教程介绍如何在 Azure 中使用 Visual Studio Team Services 和 Win ...

  4. WINDOWS SOCKET编程中accept出来的新连接是阻塞还是非阻塞

    实践证明 SOCKET hNewSock=accept(hListenSock) 当hListenSock为阻塞模型时,hNewSock则为阻塞模型 否则 当hListenSock为非阻塞模型时,hN ...

  5. IE9 添加事件DOMContentLoaded,方法addEventListener

    IE9 新添加 事件DOMContentLoaded,方法addEventListener

  6. SDN 第四次作业

    阅读 了解SDN控制器的发展 http://www.sdnlab.com/13306.html http://www.docin.com/p-1536626509.html 了解ryu控制器 http ...

  7. 【Alpha Go】Day 1 !

    [Alpha Go]Day 1 ! Part 0 · 简要目录 Part 1 · 任务分配 Part 2 · 他日安排 Part 3 · 预期任务量 Part 4 · 团队贡献值计算原则 Part 1 ...

  8. [Python2]介绍关于Uiautomator的watcher使用场景及使用方法

    [官方的介绍]: Watcher You can register watcher to perform some actions when a selector can not find a mat ...

  9. js判断360浏览器 兼容模式IE版本

    var ms_ie = false; var ua = window.navigator.userAgent.toLowerCase(); var old_ie = ua.indexOf('MSIE' ...

  10. oracle 手动增加序列值

    1.select seq_name.nextval from dual; //假设得到结果5656 2.alter sequence seq_name increment by -5655; //注意 ...