python获取文件的绝对路径_python得到代码所在文件的绝对路径

在python中获取当前路径使用os.getcwd()并不总是有效的,不是得到的真实绝对路径。运行的时候有时取得的路径是当前脚本路径,有时却不是,相同的代码,在win的pycharm下运行得到的路径,与在linux中执行python test.py后得到的路径是不同的。

查阅了一些资料才发现,os.getcwd()是用来获取调用python程序时所在目录,也就是调用目录,并非该脚本所在目录,举个例子:

有这样一个脚本,e:\root\subdir\test.py,且test.py文件中有print os.getcwd()语句,

进入cmd窗口,cd e:\root\subdir\,敲击python test.py 文件,打印结果是e:\root\subdir

如果是这样 cd e:\root\,敲击python test.py 文件,打印结果却是e:\root

简而言之也就是你在哪个窗口执行的命令,当前窗口就是哪儿。

即使在win的pycharm下,两个模块在相同的目录下也会显示不同的路径

1644825-20191230171036267-289860336.png

因为连个模块中的代码不同,导致输出的路径,一个是mainpro , 一个是mypkg.

解决办法:

获取代码所在文件的绝对路径:

current_path = os.path.abspath(__file__)

获取以上文件所在的目录

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

再次用以上方法可以得到上上级目录等等

参考https://blog.csdn.net/cckavin/article/details/85392392

https://blog.csdn.net/qq_33716688/article/details/89333856

https://blog.csdn.net/lzl001/article/details/8495823

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值