python os.getcwd用法_python慎用os.getcwd() ,除非你知道【文件路径与当前工作路径的区别】...

当你搜索 "获取当前文件路径" 时,有的文章会提到用os.getcwd(),但是这玩意要慎用!

废话不多说,直接上例子:

E:\program_software\Pycharm\ytb\ytb_api\api\views.py 文件内容如下:

path1 = os.path.abspath(os.path.dirname(os.getcwd()))

print(‘path1: ‘, path1)

在别处调用后:

结果并不是想要的当前文件路径。

为什么会这样?

去看getcwd源码:

解释:return 得到当前工作路径(working directory)

那这个working directory到底是什么?

继续搜索:

翻译一下:

当前工作路径 working directory 就是脚本运行/调用/执行的地方,而不是脚本本身的地方。

也就是说「当前文件路径」跟「当前工作路径」没关系,

即os.getcwd() 返回值跟你的 Python 文件路径没关系,

如果要获得「文件路径」你得使用 __file__。

比如,我想要的是当前文件的绝对路径,那就需要这俩哥出场了:

还以E:\program_software\Pycharm\ytb\ytb_api\api\views.py 举例子:

# Return the absolute version of a path. 获取当前文件的绝对路径

print(os.path.abspath(__file__))

# E:/program_software/Pycharm/ytb/ytb_api/api/views.py

# Returns the directory component of a pathname 获取当前文件所属的文件夹

print(os.path.dirname(__file__))

# E:/program_software/Pycharm/ytb/ytb_api/api

搭配使用,返回当前文件所在文件夹的绝对路径(这两个结果是一样的):

path1 = os.path.dirname(os.path.abspath(__file__))

print(path1)

# E:/program_software/Pycharm/ytb/ytb_api/api

path2 = os.path.abspath(os.path.dirname(__file__))

print(path2)

# E:/program_software/Pycharm/ytb/ytb_api/api

如果看过些源码的话,会发现很多源码都这么用:

总结一下:

「当前文件路径」用  os.path.abspath(os.path.dirname(__file__))

「当前工作路径」用 os.path.abspath(os.path.dirname(os.getcwd()))

手敲不易,如果有帮助,请您给我点个推荐,感谢。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: `os.getcwd()` 是 Python 的一个内置函数,它用于获取当前工作目录的路径。 例如,如果在 Python 解释器中输入以下代码: ``` import os print(os.getcwd()) ``` 它将返回当前 Python 脚本所在的目录的绝对路径。如果在 Python 脚本文件中运行这些代码,则将返回该脚本所在的目录的绝对路径。 ### 回答2: Pythonos模块提供了许多处理文件和目录的函数。其中一个非常实用的函数是os.getcwd(),它会返回当前工作目录路径(字符串形式)。 所谓工作目录,就是当前Python脚本运行时所在的目录。通俗的说,就是这个Python脚本文件在电脑上存储的路径。有时候我们需要知道当前脚本所在的路径,方便我们读写文件或者加载模块。 例如,在终端中打开一个Python文件夹,然后执行以下代码: import os print(os.getcwd()) 那么就可以在终端中看到这个Python文件夹所在的路径了。这个路径可以用来调用其他文件或者查找文件等。 除了帮助我们定位当前Python文件路径os.getcwd()还可以和其他os模块的函数一起使用。例如,我们可以用os.listdir()列出当前工作目录下的所有文件: import os print(os.listdir(os.getcwd())) 此外,os.getcwd()也可以配合os.chdir()使用,来改变当前工作目录。如果我们需要切换到另一个目录以便进行一些操作,那么可以用os.chdir()改变当前目录。例如: import os print(os.getcwd()) # 显示当前目录 os.chdir('new_folder') # 切换到new_folder目录 print(os.getcwd()) # 再次显示当前目录 这样,执行完第一个print语句后就会显示当前工作目录,然后执行os.chdir('new_folder')切换到指定目录,最后再打印一次当前目录就会显示new_folder目录。这在编写路径相关的代码时非常实用。 综上所述,os.getcwd()是一种非常有用的函数,可以帮助我们轻松定位当前Python文件路径,方便我们进行文件操作和模块加载等。 ### 回答3: python中的os模块提供了许多与操作系统交互的方法和函数。其中getcwd()是os模块中的一个函数,它的作用是获取当前工作目录。下面我将从以下几个方面来回答该函数的作用和用法。 1. 获取当前工作目录 os.getcwd()函数的主要作用就是获取当前python脚本所在的工作目录,即当前操作系统的工作目录。其中,getcwd是get current working directory的缩写。该函数没有任何参数,并且返回字符串类型的当前工作目录路径。 2. 使用os.chdir()更改工作目录 除了获取当前工作目录,Python中的os模块还提供了一个与之配套的函数os.chdir()来更改当前工作目录。如果你想在你的代码中使用一个相对路径来访问一个文件或者工作目录,那么你需要事先更改当前工作目录。比如: import os os.chdir('/Users/xxxxx/Desktop/') print(os.getcwd()) 以上代码将把工作目录更改为桌面并获取当前工作目录。 3. 与其他模块结合使用 Python中的getcwd()函数可以与其他模块结合使用,配合使用也无限可能。比如,我们可以用getcwd()函数获取当前工作目录并使用一个用于数据处理的模块将数据导入工作目录。同时,我们也可以使用getcwd()函数将数据保存到当前工作目录或子目录下,避免了文件路径的繁琐。 总之,Python中的getcwd()函数是Python操作系统交互模块os模块中的一个我们经常使用的函数。通过它,我们可以方便地获取当前工作目录并且可以使用它的配套函数os.chdir()更改工作目录。同时,也可以将getcwd()函数与其他模块结合使用,提高代码的可读性和灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值