zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    hdu 2001 计算两点的距离
    hdu 2001 计算两点的距离
    hdu 2000 ASCII码排序(c语言)
    hdu 2000 ASCII码排序(c语言)
    1.网页学习-开始学习第一步:
    .net 父窗口线程交给子窗口
    多线程传递多个参数
    not Exists的使用方法
    xml.dom.minidom介绍
    .net之线程控件之间访问
  • 原文地址:https://www.cnblogs.com/huwentao/p/7093101.html
Copyright © 2011-2022 走看看