python函数深入浅出 12.os.getcwd()函数详解

3,436 阅读2分钟

1.函数名及其来源

os是python自带的系统模块,需要import使用 os 源于英文Operating System(操作系统)的缩写

cwd 则是源于Current Working Directory,中文意思是 当前工作目录

所以os.getcwd() 指获取当前工作目录

示例:

>>> os.getcwd()
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37'

2.函数定义源码及其用法拆解

getcwd()方法语法格式如下:

os.getcwd()
  • 参数 无 其他获取路径方法:
  • os.getcwd() 获得程序运行的当前目录所在位置
  • sys.path0 获得当前执行的脚本的所在目录位置
  • os.path.realpath

其他常用相关os函数(不必强记,用到会查找就行):

  • os.system() #运行shell命令
  • os.name #返回当前使用平台的代表字符,Windows用'nt'表示,Linux用'posix'表示
  • os.sep #返回当前操作系统特定的路径分隔符,window和Linux通常不一样
  • os.path.split(path) #将path的目录和文件名分开为元组
  • os.path.join(path1,path2,...) #将path1,怕path2,...进行组合,若path2为绝对路径,则会将path1删除
  • os.path.dirname(path) #返回path中的目录(文件夹部分),结果不包含''
  • os.path.basename(path) #返回path中的文件名

深入理解获取路径

总之,举例来讲,os.getcwd()、sys.path[0] (sys.argv[0])和__file__的区别是这样的:

假设目录结构是:

 C:\test
  |
  [dir] getpath
    |
    [file] path.py
    [dir] sub
      |
      [file] sub_path.py

然后我们在C:\test下面执行

python getpath/path.py,

这时sub_path.py里面与各种用法对应的值其实是:

  • os.getcwd() “C:\test”,取的是起始执行目录
  • sys.path[0]或sys.argv[0] “C:\test\getpath”,取的是被初始执行的脚本的所在目录
  • os.path.split(os.path.realpath(file))[0] “C:\test\getpath\sub”,取的是__file__所在文件sub_path.py的所在目录

3.版本差异

4.学习建议

path的准确定位对于import包,读写文件都非常重要, 如果一时不能理解,可以在文件执行开头多加几个 print帮助我们确定那个路径是我们希望拿到的,然后将其设为全局变量就好了

import os
import sys
print(os.getcwd())
print(sys.path[0])
print(os.path.split(os.path.realpath(__file__))[0])