Python 获取当前所在目录的方法详解

作者:RustFisher 时间:2021-07-19 09:41:14 

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:\

来源:http://rustfisher.github.io/2017/07/31/Python_note/Python-get-path/

标签:Python,获取当前目录
0
投稿

猜你喜欢

  • Python采集王者皮肤图片实战示例

    2021-08-02 12:09:23
  • 深入浅出Python中三个图像增强库的使用

    2021-12-08 08:33:55
  • 用XML和XSL来生成动态页面

    2008-09-04 10:35:00
  • mysql 如何使用JSON_EXTRACT() 取json值

    2024-01-16 04:26:46
  • python pptx复制指定页的ppt教程

    2023-08-20 22:54:50
  • SQL Server 2008 阻止保存要求重新创建表的更改问题的设置方法

    2024-01-14 13:53:03
  • PHP 巧用数组降低程序的时间复杂度

    2023-11-15 09:40:02
  • MySQL基础教程之事务异常情况

    2024-01-15 06:12:20
  • Python类中__init__() 和self的详细解析

    2021-04-22 22:05:06
  • ACCESS 2007出现“错误 '80040e14'“

    2008-06-19 13:21:00
  • Linux自动备份MySQL数据库脚本代码

    2024-01-24 05:00:12
  • python基础入门学习笔记(Python环境搭建)

    2022-01-12 20:27:48
  • Python 聊聊socket中的listen()参数(数字)到底代表什么

    2022-10-17 00:49:25
  • 关于SQL嵌套的误解分析

    2024-01-22 22:01:03
  • Go中过滤范型集合性能示例详解

    2024-04-27 15:27:35
  • python实现获取单向链表倒数第k个结点的值示例

    2022-10-12 17:38:10
  • python之json文件转xml文件案例讲解

    2021-11-18 04:54:23
  • centos7.4系统中yum源安装mysql 5.6

    2024-01-14 16:38:19
  • asp动态调用不同include文件方法

    2007-09-26 14:22:00
  • po+selenium+unittest自动化测试项目实战

    2022-05-03 14:46:46
  • asp之家 网络编程 m.aspxhome.com