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/
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
如何使用 SQL Server 数据库查询累计值
Python实现绘制多角星实例
![](https://img.aspxhome.com/file/2023/0/67870_0s.jpg)
python线程信号量semaphore使用解析
pyinstaller打包遇到的问题解决
![](https://img.aspxhome.com/file/2023/3/101433_0s.jpg)
pygame游戏之旅 计算游戏中躲过的障碍数量
![](https://img.aspxhome.com/file/2023/5/87755_0s.png)
Python写入CSV文件的方法
php实现微信公众号主动推送消息
php桥接模式的实例用法及代码分析
简单介绍Python中的struct模块
Go语言使用swagger生成接口文档的方法
![](https://img.aspxhome.com/file/2023/4/100794_0s.jpg)
数据库新手入门之MYSQL出错代码列表
在ASP中用“正则表达式对象”来校验数据的合法性
浅谈Tensorflow 动态双向RNN的输出问题
![](https://img.aspxhome.com/file/2023/3/97733_0s.jpg)
python实现BP神经网络回归预测模型
![](https://img.aspxhome.com/file/2023/2/98322_0s.png)
css中如何使div居中(垂直水平居中)
python2和python3在处理字符串上的区别详解
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
![](https://img.aspxhome.com/file/2023/3/553831_0s.png)
Access与Flash的结合应用
python多线程下信号处理程序示例
![](https://img.aspxhome.com/file/2023/5/104395_0s.jpg)