首页 > 其他 > 详细

print(__file__)返回<encoding error>的问题

时间:2017-06-29 11:05:33      阅读:275      评论:0      收藏:0      [点我收藏+]

今天写了一下代码,本来是想得到当前文件的上面三层的目录的,结果返回的却是错误

import os
import sys

print(__file__)
# 得到上上层目录的路径之后,加入到默认的环境变量中
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
sys.path.append(BASE_DIR)
print("******", BASE_DIR)

输出结果:
<encoding error>
****** 

然后在Stack Overflow中看到了以下说法

https://stackoverflow.com/questions/7783308/os-path-dirname-file-returns-empty

 

上面的大概意思说dirname和basename在分割路径的时候并不会去考虑当前路径,因此我们需要做以下修改,但是我之前写过的一个程序用的是相同的代码,可以执行,这让我很费解,不过问题确实解决了,如果有好心的网友知道具体的原因,还请在下面评论中指点迷津

 

修改代码:把__file__改成os.path.abspath(__file___)就可以了

import os
import sys

print(os.path.abspath(__file__))
# 得到上上层目录的路径之后,加入到默认的环境变量中
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(BASE_DIR)
print("******", BASE_DIR)

 

print(__file__)返回<encoding error>的问题

原文:http://www.cnblogs.com/huwentao/p/7093101.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!