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)
时间: 2024-08-13 13:52:07

print(__file__)返回<encoding error>的问题的相关文章

python爬取百度翻译返回:{&#39;error&#39;: 997, &#39;from&#39;: &#39;zh&#39;, &#39;to&#39;: &#39;en&#39;, &#39;query 问题

解决办法: 修改url为手机版的地址:http://fanyi.baidu.com/basetrans User-Agent也用手机版的 测试代码: # -*- coding: utf-8 -*- """ ------------------------------------------------- File Name: requestsGet Description : 爬取在线翻译数据s Author : 神秘藏宝室 date: 2018-04-17 --------

Content encoding error问题解决方法

A few people have been experiencing the following error. UPDATE: The reason for it happening is because when your browsers request a page from us, we compress it when we send it back. This allows us to send your page faster, and to send more pages to

Ambari显示server 返回500 error

Ambari server 搭建过程中到了revicw环境遇到点击deploy:发现页面没有响应 Console显示server 返回500 error错误,页面中没有提示更多的报错信息. 经过日志查看,发现日志中报了如下错误: 12 Mar 2018 21:25:41,903 ERROR [alert-event-bus-2] AlertReceivedListener:480 - Unable to process alert hbase_regionserver_process for a

onenet基础通信套件返回+CIS ERROR: 50的问题解决

1. 场景分析,主要问题就是有些操作返回+CIS ERROR: 50 2. 看了一下在AT+MIPLOBSERVERSP这个指令里面是没有返回+CIS ERROR: 50的错误类型的,所以应该是在解析这个AT指令之前出现的,那么为啥会出现,猜测一,模块进入睡眠,唤醒之后第一个串口字符丢失,但是用自己的板子测试,这个概率并不高,客户测试几乎100%出现,猜测二,就是外部MCU进入睡眠之后改变RX的电平,所以接收数据多了一个上升沿或者下降沿,还有就是AT+MIPLNOTIFY的时候出现的,暂时没发现

php7 curl返回false error返回空串

php7 CURLOPT_SSL_VERIFYPEER 禁用后cURL将终止从服务端进行验证.使用CURLOPT_CAINFO选项设置证书使用CURLOPT_CAPATH选项设置证书目录 如果CURLOPT_SSL_VERIFYPEER(默认值为2)被启用,CURLOPT_SSL_VERIFYHOST需要被设置成TRUE否则设置为FALSE. 自cURL 7.10开始默认为TRUE.从cURL 7.10开始默认绑定安装. CURLOPT_SSL_VERIFYHOST 1 检查服务器SSL证书中是

Hibernate 执行sql语句返回yntax error: syntax error, expect LPAREN, actual NOT not

hibernate自动创建表时提示 :  ERROR: sql injection violation, syntax error: syntax error, expect LPAREN, actual NOT not : 可是我把sql语句在sql客户端执行是Ok的 后来在一个博客的评论区找到了原因 原来改sql语句执行被druid配置的防火墙拦截了 将druid.filters属性中的wall去掉就好

python学习-常用模块-os,random,logging

os模块(补充中) 1.查看当前路径及切换路径 >>> import os>>> os.getcwd() #获取当前文件所在的路径'D:\\python\\Lib\\idlelib'>>> os.chdir('../') #切换当上一层目录,此处可以是相对路径>>> os.getcwd()'D:\\python\\Lib' >>> os.chdir('D:\Program Files (x86)') #也可以是绝对路

Python档案袋(文件系列操作 )

文件读写基础 简单的读文件: 1 # r 表示只能读 2 #打开文件,得到文件光标对象,文件不存在则报错 3 f=open("ww.txt","r",encoding="utf-8") 4 5 #读取文件内容 6 res=f.read() 7 8 #关闭文件 9 f.close() 10 11 print(res) 读文件补充: 1 # r 表示只能读 2 #打开文件,得到文件光标对象,文件不存在则报错 3 f=open("ww.txt

python基础-软件目录开发规范

为什么要设计好目录结构? "设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题.对于这种风格上的规范,一直都存在两种态度: 一类同学认为,这种个人风格问题"无关紧要".理由是能让程序work就好,风格问题根本不是问题. 另一类同学认为,规范化能更好的控制程序结构,让程序具有更高的可读性. 我是比较偏向于后者的,因为我是前一类同学思想行为下的直接受害者.我曾经维护过一个非常不好读的项目,其实现的逻辑并不复杂,但是却耗费了我非常长的时间去