os.getcwd && os.path.abspath详解
os.getcwd()
1、os.getcwd():
获取当前工作目录,也就是在哪个目录下运行这个程序。
举例来说:
假设F:\aaa\bbb\ccc目录下有个文件 TestDir.py,打印当前工作目录。进入windows命令行窗口:
在F:\aaa\bbb\ccc运行 python TestDir.py,输出F:\aaa\bbb\ccc在F:\aaa\bbb运行 python ccc/TestDir.py,输出F:\aaa\bbb在F:\aaa运行 python bbb/ccc/TestDir.py,输出F:\aaa
如果使用pycharm的要注意: pycharm里面默认的工作目录是你项目的工作目录!!! 2、如果我想获取TestDir.py文件所在的目录,怎么办?
使用sys.path[0]
import os
print(os.getcwd())import sys
print(sys.path[0])
os.path.abspath源码解读
# Return an absolute path.
try:
from nt import _getfullpathname#nt是提供访问windows操作系统的接口.except ImportError: # not running on Windows - mock up something sensible如果导入失败
def abspath(path):
"""Return the absolute version of a path."""
if not isabs(path):#如果不是绝对路径
if isinstance(path, unicode):#判断编码类型是不是unicode
cwd = os.getcwdu()#是用getcwdu
else:
cwd = os.getcwd()#不是用getcwd
path = join(cwd, path) #把path和当前工作路径连接起来.
return normpath(path)else:# use native Windows method on Windows
def abspath(path):
"""Return the absolute version of a path."""if path: # Empty path must return current working directory.
try:
path = _getfullpathname(path)
except WindowsError:
pass # Bad path - return unchanged.
elif isinstance(path, _unicode):
path = os.getcwdu()
else:
path = os.getcwd()
return normpath(path)
其实就是什么呢?
os.path.abspath取决于os.getcwd,如果是一个绝对路径,就返回,如果不是绝对路径,根据编码执行getcwd/getcwdu.
然后把path和当前工作路径连接起来.
参考:
https://www.cnblogs.com/nzbbody/archive/2013/11/12/3419473.html
【os.getcwd && os.path.abspath详解】http://blog.csdn.net/yes1cpp/article/details/43310595
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 宋仲基&宋慧乔(我们不公布恋情,我们直接结婚。)
- 21天|21天|M&M《见识》04
- 二叉树路径节点关键值和等于目标值(LeetCode--112&LeetCode--113)
- 2021—3—8日教练实践总结&呼吸练习&觉察日记
- 奇迹-妖妈|奇迹-妖妈 感恩日记46/365&非暴力沟通第3天
- 前端|web前端dya07--ES6高级语法的转化&render&vue与webpack&export
- 数据技术|一文了解Gauss数据库(开发历程、OLTP&OLAP特点、行式&列式存储,及与Oracle和AWS对比)
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- gem|gem & pod 记录