python3.3版本,导入带有中文字符的.py文件 提示 (unicode error) 'utf-8' codec can't decode

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3.3版本,导入带有中文字符的.py文件 提示 (unicode error) 'utf-8' codec can't decode相关的知识,希望对你有一定的参考价值。

python3.3版本,from city import city
此处报错 SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xb1 in position 0: invalid start byte
city.py中有中文字符。我的目的就是读取.py中的中文。这个怎么解决啊。新人求助。

该city模块中包含非utf-8编码的中文字符,选择一个合用的python编辑工具: scite, geany, sublime_text, notepad++ .. 等均可, 这些编辑器都支持在保存文件时指定编码格式。

    Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python 虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。

    这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。

    基于C的Python编译出的字节码文件,通常是.pyc格式。

参考技术A 在你用的编辑器里设置,我用的geany:编辑->首选项->文件->缺省编码设置成UTF-8,应用后,新建一个py文件,将你代码复制到这里,再运行,应该可以了 参考技术B 用geany编写python时中文部分出现标题所示问题
点击 文档>>设置文件编码>>Unicode>>Unicode(UTF-8)
#源自CSDN
参考技术C 打开city.py,头部加上# -*- coding: utf-8 -*-这行试试看追问

加上了,还是不行。
open('','w','gbk')
这个我也试过了,不行。
愁死我了

追答

额,打错了,其实本来是想说加上# -*- coding: gbk -*的

但可能也不行,你用notepad++之类的打开那个文件,看看是什么编码的吧,或者要不是什么保密的东西,你把文件发给我,我研究下

追问

就是这么个东西,很简单的,字典。

追答

lonelycat1984@gmail.com,你把文件发给我,我转好给你把

本回答被提问者采纳
参考技术D 文件首行加 #-*- coding:gbk -*- 如果不行就将gbk换成utf-8

以上是关于python3.3版本,导入带有中文字符的.py文件 提示 (unicode error) 'utf-8' codec can't decode的主要内容,如果未能解决你的问题,请参考以下文章

Django:将带有 HTML 和 Django 模板标签的 Views.py 中的字符串变量注入 HTML 文件

在 python3 中使用 importlib 动态导入时出错

带有移动导入错误的 Python 类继承

导入opencv时出现Python3重新链接问题

使用多个版本的 Python

使用批处理将包含字符串的文件的标题导入文本文档