os.getcwd()使用误区

本文介绍了在Python开发中,os.getcwd()方法获取当前工作目录与__file__获取脚本路径的区别。在PyCharm和CMD中运行os.getcwd()会得到不同结果,因为它们的工作目录不同。为了获取脚本所在目录,可以使用os.path.dirname(__file__)。然而,当使用pyinstaller打包时,__file__可能指向打包后的文件,此时推荐使用os.path.dirname(os.path.realpath(sys.argv[0]))来获取准确路径。
部署运行你感兴趣的模型镜像

平时用PyCharm做Python开发的时候,经常会使用到os.getcwd()方法来获取当前的工作路径。
比如,希望将log文件存放到工作目录的logs文件夹中时,就会用到这个方法。

下面我们用不同的方法测试下列一行代码:

import os

if __name__ == '__main__':
    print(os.getcwd())

先给出在PyCharm中的运行结果:
在这里插入图片描述

但更多时候,代码写完成,不会从PyCharm开始运行,比如会从CMD运行。
在CMD中运行的结果如下:

C:\Users\xxxxx> python "C:/Users/xxxxx/Downloads/Test/main.py"
C:\Users\xxxxx

CMD和PyCharm中运行的结果完全不同!

原因:
os.getcwd()获取的是当前工作目录。
cmd和pycharm的工作目录不同,所打印的结果也不同。

如果想准确获得文件所保存目录的路径,可以用下面的方法:

import os
os.path.dirname(__file__)

如此可以获得答案。

__file__是已加载模块或脚本的完整文件名,因此使用os.path.dirname(__file __)获取它的父目录将获得脚本所在的目录。

os.getcwd()获取当前工作目录。如果从脚本所在的目录(这是常见的)启动脚本,那么工作目录将与os.path.dirname(__file __)调用的结果相同。

注意:
如果使用pyinstaller等工具打包代码,由于__file__必须是实际存在的.py文件,所以会出错!
请使用下面的代码:

import sys
import os
path = os.path.dirname(os.path.realpath(sys.argv[0]))

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值