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

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)

最新文章

  1. RequireJS+JQueryMobile
  2. JavaScript-取消事件-e.preventDefault();
  3. ajaxfileupload回到json带&lt;pre&gt;
  4. Java生成公私钥对
  5. FZU 2148 Moon Game
  6. 130712周赛(CF)
  7. memcpy函数的使用方法
  8. 如何在Mac系统安装eclipse并运行java程序?
  9. MySQL定时逻辑备份
  10. Netty 4源码解析:服务端启动
  11. hex转mif文件 verilog
  12. 两种 AuthorizationSchemes 在 ASP.NET Core 2
  13. Linux操作系统网络配置
  14. 配置文件 .properties 的使用。
  15. datagridview 单元格类型转换【备忘】
  16. qt-vs-addin:Qt4和Qt5之VS插件如何共存与使用(转)
  17. spring-boot4代码
  18. python - work5 - 类与对象 - 拓展题
  19. 初入Three.js 第一章
  20. 查询sqlserver数据库,表占用数据大小

热门文章

  1. eclipse插件svn和客户端工具TortoiseSvn的版本对应关系
  2. checkpoint(sqlserver数据库检查点)
  3. dedecms 权重排序问题
  4. ZT 头文件包含其实是一想很烦琐的工作 第一个原则应该是,如果可以不包含头文件
  5. 【转载】#457 Converting Between enums and their Underlying Type
  6. bzoj3820 虫逢
  7. ACM-ICPC(10 / 10)——(完美世界2017秋招真题)
  8. 显示Windows版本号
  9. 2018.10.10 Java的The superclass &quot;javax.servlet.http.HttpServlet&quot; was not found on the Java Build Path 错误
  10. js学习笔记-数字转罗马数字