博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
print(__file__)返回<encoding error>的问题
阅读量:4553 次
发布时间:2019-06-08

本文共 793 字,大约阅读时间需要 2 分钟。

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

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

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

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

 

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

 

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

import osimport sysprint(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)

 

转载于:https://www.cnblogs.com/huwentao/p/7093101.html

你可能感兴趣的文章
CSS: 解决Div float后,父Div无法高度自适应的问题
查看>>
opengl编程指南
查看>>
游戏开发实验室的内部讲座总结----c++
查看>>
表单验证,与多语言支持,CI
查看>>
C# 扩展方法
查看>>
WPF MVVM框架PRISM
查看>>
UVa 208 - Firetruck <双向DFS>
查看>>
winform treeview绑定数据 DOM操作
查看>>
linux centos oracle11g 单机完整部署分享
查看>>
hznu
查看>>
《JAVA与模式》之模板方法模式 (转)
查看>>
JavaSE:八种基本数据类型
查看>>
JumpServer 堡垒机 指南
查看>>
IOS UIApplication和AppDelegate 关系
查看>>
HTML5新表单元素
查看>>
Linux CentOS下Python+robot framework环境搭建
查看>>
36: Same Tree
查看>>
bzoj 3671: [Noi2014]随机数生成器【模拟+贪心】
查看>>
MVC html.Telerik 开元控件在线文档
查看>>
题目1545:奇怪的连通图
查看>>