首页 > 代码库 > print(__file__)返回<encoding error>的问题
print(__file__)返回<encoding error>的问题
今天写了一下代码,本来是想得到当前文件的上面三层的目录的,结果返回的却是错误
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>的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。