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 相关文章推荐
Python continue语句用法实例
Mar 11 Python
Python实现的多线程端口扫描工具分享
Jan 21 Python
图文讲解选择排序算法的原理及在Python中的实现
May 04 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
Aug 03 Python
Python引用传值概念与用法实例小结
Oct 07 Python
Python管理Windows服务小脚本
Mar 12 Python
Centos7 Python3下安装scrapy的详细步骤
Mar 15 Python
Python引用计数操作示例
Aug 23 Python
pandas 根据列的值选取所有行的示例
Nov 07 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 Python
基于python if 判断选择结构的实例详解
May 06 Python
python绘制动态曲线教程
Feb 24 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
给初学PHP的5个入手程序
2006/11/23 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
jQuery链使用指南
2015/01/20 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
优化Python代码使其加快作用域内的查找
2015/03/30 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
2017/08/18 Python
使用PyQt4 设置TextEdit背景的方法
2019/06/14 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
python打印文件的前几行或最后几行教程
2020/02/13 Python
使用 Python 在京东上抢口罩的思路详解
2020/02/27 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
python实现计算器简易版
2020/12/17 Python
python实现图片转字符画
2021/02/19 Python
HTML5无刷新改变当前url的代码
2017/03/15 HTML / CSS
HTML5拖放API实现自动生成相框功能
2020/04/07 HTML / CSS
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
Pandora德国官网:购买潘多拉手链、戒指、项链和耳环
2020/02/20 全球购物
年会搞笑主持词串词
2014/03/24 职场文书
国庆节标语大全
2014/10/08 职场文书
介绍信模板
2015/01/31 职场文书
校长个人总结
2015/03/03 职场文书
2016高三毕业赠言寄语
2015/12/04 职场文书
初中数学课堂教学反思
2016/02/17 职场文书
送给火锅店的创意营销方案!
2019/07/08 职场文书
宪法宣传标语100条
2019/10/15 职场文书
Python利用folium实现地图可视化
2021/05/23 Python
SQL Server内存机制浅探
2022/04/06 SQL Server