sys.path

模块搜索路径的字符串列表。由环境变量PYTHONPATH初始化得到。

sys.path[0]是调用Python解释器的当前脚本所在的目录。

sys.argv

一个传给Python脚本的指令参数列表。

sys.argv[0]是脚本的名字(由系统决定是否是全名)

假设显示调用python指令,如 python demo.py ,会得到绝对路径;

若直接执行脚本,如 ./demo.py ,会得到相对路径。

os.getcwd()

获取当前工作路径。在这里是绝对路径。

https://docs.python.org/2/library/os.html#os.getcwd

__file__

获得模块所在的路径,可能得到相对路径。

如果显示执行Python,会得到绝对路径。

若按相对路径来直接执行脚本 ./pyws/path_demo.py,会得到相对路径。

为了获取绝对路径,可调用 os.path.abspath()

os.path 中的一些方法

os.path.split(path)

将路径名称分成头和尾一对。尾部永远不会带有斜杠。如果输入的路径以斜杠结尾,那么得到的空的尾部。

如果输入路径没有斜杠,那么头部位为空。如果输入路径为空,那么得到的头和尾都是空。

https://docs.python.org/2/library/os.path.html#os.path.split

os.path.realpath(path)

返回特定文件名的绝对路径。

https://docs.python.org/2/library/os.path.html#os.path.realpath

代码示例

环境 Win7, Python2.7

以 /e/pyws/path_demo.py 为例

#!/usr/bin/env python

import os

import sys

if __name__ == '__main__':

print "sys.path[0] =", sys.path[0]

print "sys.argv[0] =", sys.argv[0]

print "__file__ =", __file__

print "os.path.abspath(__file__) =", os.path.abspath(__file__)

print "os.path.realpath(__file__) = ", os.path.realpath(__file__)

print "os.path.dirname(os.path.realpath(__file__)) =", os.path.dirname(os.path.realpath(__file__))

print "os.path.split(os.path.realpath(__file__)) =", os.path.split(os.path.realpath(__file__))

print "os.getcwd() =", os.getcwd()

在 /d 中运行,输出为

$ python /e/pyws/path_demo.py

sys.path[0] = E:\pyws

sys.argv[0] = E:/pyws/path_demo.py

__file__ = E:/pyws/path_demo.py

os.path.abspath(__file__) = E:\pyws\path_demo.py

os.path.realpath(__file__) = E:\pyws\path_demo.py

os.path.dirname(os.path.realpath(__file__)) = E:\pyws

os.path.split(os.path.realpath(__file__)) = ('E:\\pyws', 'path_demo.py')

os.getcwd() = D:\

在e盘中用命令行直接执行脚本

$ ./pyws/path_demo.py

sys.path[0] = E:\pyws

sys.argv[0] = ./pyws/path_demo.py

__file__ = ./pyws/path_demo.py

os.path.abspath(__file__) = E:\pyws\path_demo.py

os.path.realpath(__file__) = E:\pyws\path_demo.py

os.path.dirname(os.path.realpath(__file__)) = E:\pyws

os.path.split(os.path.realpath(__file__)) = ('E:\\pyws', 'path_demo.py')

os.getcwd() = E:\

python 脚本所在目录,Python 获取当前所在目录的方法详解相关推荐

  1. python截图黑屏_对Python获取屏幕截图的4种方法详解

    Python获取电脑截图有多种方式,具体如下: PIL中的ImageGrab模块 windows API PyQt pyautogui PIL中的ImageGrab模块 import time imp ...

  2. pdo mysql fetchall_PDO中获取结果集之fetchAll()方法详解

    fetchAll()方法是获取结果集中的所有行,返回一个包含结果集中所有行的二进制数组!大理石机械构件维修厂家 那么在上一篇<PDO中获取结果集之fetch()方法详解>中,我们介绍了fe ...

  3. python语言的格式框架_django框架模板语言使用方法详解

    本文实例讲述了django框架模板语言使用方法.分享给大家供大家参考,具体如下: 模板功能 作用:生成html界面内容,模版致力于界面如何显示,而不是程序逻辑.模板不仅仅是一个html文件,还包括了页 ...

  4. 合法的python变量名import_python 环境变量和import模块导入方法(详解)

    1.定义 模块:本质就是.py结尾的文件(逻辑上组织python代码)模块的本质就是实现一个功能 文件名就是模块名称 包: 一个有__init__.py的文件夹:用来存放模块文件 2.导入模块 imp ...

  5. python process 函数_Python Process创建进程的2种方法详解

    前面介绍了使用 os.fork() 函数实现多进程编程,该方法最明显的缺陷就是不适用于 Windows 系统.本节将介绍一种支持 Python 在 Windows 平台上创建新进程的方法. Pytho ...

  6. python对文件的处理_python文件处理fileinput使用方法详解

    这篇文章主要介绍了python文件处理fileinput使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.介绍 fileinput模块 ...

  7. python创建双链表_Python双链表原理与实现方法详解

    本文实例讲述了Python双链表原理与实现方法.分享给大家供大家参考,具体如下: Python实现双链表 文章目录 Python实现双链表 单链表与双链表比较 双链表的实现 定义链表节点 初始化双链表 ...

  8. 基于python的贝叶斯分类器_Python实现朴素贝叶斯分类器的方法详解

    本文实例讲述了Python实现朴素贝叶斯分类器的方法.分享给大家供大家参考,具体如下: 贝叶斯定理 贝叶斯定理是通过对观测值概率分布的主观判断(即先验概率)进行修正的定理,在概率论中具有重要地位. 先 ...

  9. python修改文件内容_Python批量修改文本文件内容的方法详解

    这篇文章主要介绍了Python批量修改文本文件内容的方法的相关资料,需要的朋友可以参考下 Python批量替换文件内容,支持嵌套文件夹 import os path="./" fo ...

  10. 怎么打开python shell_Python之使用adb shell命令启动应用的方法详解

    一直有一个心愿希望可以用Python做安卓自动化功能测试,在一步步摸索中,之前是用monkeyrunner,但是发现对于控件ID的使用非常具有局限性,尤其是ID的内容不便于区分 具有重复性时,后面又发 ...

最新文章

  1. QGC注释消息提示框
  2. e.printStackTrace()会导致锁死?这仅仅是打印,怎么可能?
  3. python画图哆啦a梦-Python小白绘图 哆唻A梦 turtle真的很强大!
  4. android 界面跳转封装,【Android】Fragment跳转系列
  5. C#:winform开发的System.AccessViolationException错误,已解决
  6. 模拟计算器进行四则运算(同等优先级)(内测第2届第3题)
  7. 教你10分钟内在Windows上完成Rails开发环境的安装和配置
  8. unity图片模糊处理
  9. AIX 系统默认ftp
  10. 简单说下H5+打包apk
  11. 前往庄园失败 当前服务器不稳定,摩尔庄园手游登录不了是怎么回事 摩尔庄园手游登录失败怎么办...
  12. K近邻算法(Python实现)
  13. 概率论与数理统计前两章总结
  14. 关于bitcoin core钱包api
  15. 文本分类模型中的“蒸”功夫
  16. 拷贝主机文件到VirtualBox虚拟机
  17. 从零入手体验指纹膜代打卡全过程
  18. android xml 加载错误提示,加载uixml文件失败 打开wps时显示“加载XML文件失败1
  19. 制造企业质量管理数字化转型的思考
  20. STM32F4简易示波器

热门文章

  1. 1.6数组-像素翻转
  2. Unieap3.5-Grid翻页不提示修改
  3. 周鸿祎:通往伟大企业之路
  4. Sql Server 学习2
  5. Git(11)-- Git 别名(alias)
  6. CSDN博客利用HTML标签制作美观表格
  7. Win10(Server)与Ubuntu18.04(Client)使用Synergy--键盘鼠标共享
  8. 高通平台Bring-up
  9. Linux ALSA DAPM 调试工具
  10. Android 开机优化