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. 如何借助 HealthKit 打造一款健身应用?

    [编者按]本文作者为 Matthew Maher,文章手把手地介绍了如何借助 HealthKit 建立简单的健身应用,包含诸多代码实例.本文系国内 ITOM 管理平台 OneAPM 编译呈现. 根据新 ...

  2. 给Jqgrid添加横向滚动条,实现点击行数据,触发事件。

    function reloadNoKitScheduleGridData() { $("#noKittingScheduleList").jqGrid({ url: ". ...

  3. Azure 中虚拟机的计划内维护

    Azure 定期执行更新,以提高虚拟机的主机基础结构的可靠性.性能及安全性. 此类更新包括修补宿主环境(例如操作系统.虚拟机监控程序以及主机上部署的各种代理)中的软件组件.升级网络组件以及硬件解除授权 ...

  4. 向Sql Server数据库插入中文时显示乱码的解决办法 (转)

    转自:http://blog.csdn.net/wizardlun/article/details/4577658 參考:http://shareideas.blog.51cto.com/362642 ...

  5. Python抓取zabbix性能监控图

    一.通过查询zabbix db的方式通过主机IP获取到所需要的graphid(比如CPU监控图.内存监控图等,每个图对应一个graphid),最后将图片保存到本地 注:该graph必须要在 scree ...

  6. [Python_6] Python 配置 MySQL 访问

    0. 说明 Python 访问 MySQL 数据库,需要安装 MySQL 的 Python 插件. 1. 安装 MySQL 插件 pip install PyMySQL 2. 编写代码 # -*-co ...

  7. Spark 分布式调试工具

    0. 说明 编写工具类,考察 Spark 分布式程序的执行地点 1. 工具类编写 [ JMX ] Java Management Extend , Java 管理扩展服务. 主要用于运维和监控. [测 ...

  8. 乘风破浪:LeetCode真题_027_Remove Element

    乘风破浪:LeetCode真题_027_Remove Element 一.前言 这次是从数组中找到一个元素,然后移除该元素的所有结果,并且返回长度. 二.Remove Element 2.1 问题 2 ...

  9. Redis-安装时问题整理

    一.Redis编译: 1.问题:make gcc error yum –y install gcc 2.问题:安装报错 error: jemalloc/jemalloc.h: No such file ...

  10. SASS对css的管理

    一.SASS简介 SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. 本文总结了SASS的主要用法.我的目标是,有了这篇文章,日常的一般 ...