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


Posted in Python onAugust 02, 2017

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 相关文章推荐
下载给定网页上图片的方法
Feb 18 Python
python实现博客文章爬虫示例
Feb 26 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
May 22 Python
python实现图书馆研习室自动预约功能
Apr 27 Python
Python爬虫常用库的安装及其环境配置
Sep 19 Python
python分批定量读取文件内容,输出到不同文件中的方法
Dec 08 Python
numpy.transpose()实现数组的转置例子
Dec 02 Python
Python遍历字典方式就实例详解
Dec 28 Python
Django 权限管理(permissions)与用户组(group)详解
Nov 30 Python
Python 中如何使用 virtualenv 管理虚拟环境
Jan 21 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
Feb 03 Python
python ConfigParser库的使用及遇到的坑
Feb 12 Python
浅谈python中的数字类型与处理工具
Aug 02 #Python
Python实现的快速排序算法详解
Aug 01 #Python
Python实现的弹球小游戏示例
Aug 01 #Python
Python的mysql数据库的更新如何实现
Jul 31 #Python
Python操作csv文件实例详解
Jul 31 #Python
Python实现字典去除重复的方法示例
Jul 31 #Python
浅析使用Python操作文件
Jul 31 #Python
You might like
如何提高MYSQL数据库的查询统计速度 select 索引应用
2007/04/11 PHP
php时间戳转换的示例
2014/03/31 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
简单讲解AngularJS的Routing路由的定义与使用
2016/03/05 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
2016/09/14 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
2017/04/13 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
vue表单中遍历表单操作按钮的显示隐藏示例
2019/10/30 Javascript
python脚本内运行linux命令的方法
2015/07/02 Python
Python+request+unittest实现接口测试框架集成实例
2018/03/16 Python
Python字典的核心底层原理讲解
2019/01/24 Python
Python 利用切片从列表中取出一部分使用的方法
2019/02/01 Python
python中append实例用法总结
2019/07/30 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
Selenium webdriver添加cookie实现过程详解
2020/08/12 Python
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
中专毕业个人的自荐信格式
2013/09/21 职场文书
模具数控专业自荐信
2014/01/27 职场文书
《学会待客》教学反思
2014/02/22 职场文书
人力资源部经理岗位职责规定
2014/02/23 职场文书
应届毕业生求职信范文
2014/05/08 职场文书
党支部创先争优承诺书
2014/08/30 职场文书
逃出克隆岛观后感
2015/06/09 职场文书
入党函调证明材料
2015/06/19 职场文书
退休欢送会主持词
2015/07/01 职场文书
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS