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. Laravel安装教程

    1.Call to undefined function Illuminate\Encryption\openssl_cipher_iv_length() 报这个错是因为Apache/bin目录下 l ...

  2. 多个div中的label标签对齐

    这是之前的页面效果: 添加红色部门的代码后: <head> <meta name="viewport" content="width=device-wi ...

  3. jmeter教程--简单的做压力测试

    Jmeter是一个非常好用的压力测试工具.  Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 什么是压力测试 顾名思义:压力测试,就是  被测试的系统,在 ...

  4. yum/dnf/rpm 等 查看rpm 包安装路径 (fedora 中 pygtk 包内容安装到哪里了)

    有时候我们 使用 包管理工具,安装很方便,但我们还要能知道它们安装了什么文件,都把这些文件安装到哪里了? 我们以探究 pygtk 为例 在 fedora 28 之中 查找 pygtk: ➜ ~ rpm ...

  5. matlab使用总结2

    1.MATLAB中a./b与a/b的区别以及左除和右除 http://blog.csdn.net/wk119911/article/details/7452411 a=[1 2;3 4]; b=[1 ...

  6. 1.4环境的准备(四)之Pycharm的使用技巧

    返回总目录 目录: 1.快捷键的使用: 2.提示技巧: 3.其他技巧: (一)快捷键的使用: (1)Pycharm自带默认的快捷键 1.Ctrl + C 复制 2.Ctrl + V 粘贴 3.Ctrl ...

  7. 部署weblogic遇到的问题总结

    myeclipse开发的项目,运行在tomcat7上完全正常.部署到weblogic10上就出现了问题,现把问题记录一下: 1.找不到javax/servlet/jsp/jstl/core/Condi ...

  8. 一、git创建版本库及提交

    第一步:从Git官网直接   下载安装程序  ,并自行配置环境变量. git config --global user.name "Your Name" // 设置用户名 git ...

  9. android studio InnerClass annotations are missing corresponding EnclosingMember annotations. Such InnerClass annota

    如果 你的项目中使用了注解插件 比如butterknife   升级3.1之后打包编译  出现以下错误提示 InnerClass annotations are missing correspondi ...

  10. 关于JRebel启动tomcat访问上次工程的index.jsp

    检查了一下,原来我把上次配置文件包括JRebel配置文件一起复制过来,用JRebel启动时tomcat访问JRebel配置文件的目录下 这个是我上次文件的路径,把JRebel配置文件删除了,然后 di ...