Python读文件报错:SyntaxError: Non-ASCII character in file

打开city.py文件时报错

问题原因:

程序中的编码错误,python默认是acii模式,没有支持utf8。如果代码中有汉字 ,就会报错

解决方案:

源代码文件(city.py)第一行添加:#coding:utf-8

特别提示:windows 如果查询无结果,请用 #coding: gbk,并且保证 city.py 开头也有这一行声明。

原文地址:https://www.cnblogs.com/xianhan/p/9029276.html

时间: 2024-08-03 00:32:07

Python读文件报错:SyntaxError: Non-ASCII character in file的相关文章

Windows下使用pip安装python包是报错-UnicodeDecodeError: 'ascii' codec can't decode byte 0xcb in position 0

先交待下开发环境: 操作系统:Windows 7 Python版本:2.7.9 Pip版本:6.1.1 其他环境忽略 在windows下使用pip下载python包,出现如下错误 [plain] view plain copy Collecting xxxxxx Exception: Traceback (most recent call last): File "D:\Python27\lib\site-packages\pip-6.0.8-py2.7.egg\pip\basecommand.

[Python] 运行Flask, 报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 33: ordinal not in range(128)

运行时报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 33: ordinal not in range(128) Python2.7在Windows上一个bug!!! 解决方法: 参考官方patch: http://bugs.python.org/file19332/9291a.patch 如下代码:一,加入from itertools import count: 二,修改 def enum_type

python三元运算符—报错“SyntaxError: can't assign to conditional expression”

运行代码: a=1 b=1 x=1 if a==b else x=0 print(x) 提示错误: File "test.py", line 3 x=a if a==b else x=0 ^ SyntaxError: can't assign to conditional expression expression是表达式,就是加减乘除等各种运算符号连接起来的式子(statement是语句,如if语句,while,复制语句等): 三目运算中表达式只能作为左值 修改后: a=1 b=1

Python创建文件报错OSError:[Errno 22] Invalid argument处理

问题: windows平台下使用python open函数w模式打开文件报错"OSError: [Errno 22] Invalid argument: '../news/"消费升维"成零售业新风口?渠道多元同步跟进.txt'" 解决: 本来猜测是转义符的问题,但是使用python原字符串仍然不能解决问题. 后来发现其实是windows下文件的命名存在限制: 在Windows系统中,文件名不允许使用的字符有: < > / \ | : " * ?

ftp上传文件报错:Failure writing to local file

原文参考: https://blog.csdn.net/stevendbaguo/article/details/52942594 https://www.cnblogs.com/linuxde/p/8719469.html https://blog.csdn.net/zqtsx/article/details/24383755 在使用ftp过程中遇到的一个问题,ftp界面报错:451  Failure writing to local file 和 227 Entering Passive M

python报错问题解决:&#39;ascii&#39; codec can&#39;t encode character

python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错,python没办法处理非ascii编码的,此时需要自己设置将python的默认编码,一般设置为utf8的编码格式. 查阅网上,可以在程序中修改所有涉及到编码的地方,强制编码为utf8,即添加代码encode("utf8"),这种方法并不推荐使用,因为一旦少写一个地方,将会导致大量的错误报告. 解决方案: 在python的lib\site-packages文件夹下新建一个si

Python中文转换报错 &#39;ascii&#39; codec can&#39;t decode byte 0xe8 in position

脚本报错: 脚本代码: 报错原因: 因为默认情况下,Python采用的是ascii编码方式,如下所示: ?? python -c "import sys; print sys.getdefaultencoding()" ascii ?? 而Python在进行编码方式之间的转换时,会将 unicode 作为“中间编码”,但 unicode 最大只有 128 那么长,所以这里当尝试将 ascii 编码字符串转换成"中间编码" unicode 时由于超出了其范围,就报出了

linux Ubuntu14.04 make编译文件报错:No rule to make target `/usr/lib/libpython2.7.so&#39;, needed by `python/_pywraps2.so&#39;. Stop.

错误过程:当“make”编译文件时报错No rule to make target `/usr/lib/libpython2.7.so', needed by `python/_pywraps2.so'.  Stop. 解决过程: 1.首先输入命令以下代码获取其出错原因 make --debug 错误提示如下,很明显是项目工程找不到它,原因有两个,一是系统没有装libpython2.7.os:二是装了,路径错误,或者名字不对 File '/usr/lib/libpython2.7.so' doe

Python读取txt文件报错:UnicodeDecodeError: &#39;utf-8&#39; codec can&#39;t decode byte 0xc8 in position 0

Python使用open读取txt中文内容的文件时,有可能会报错,报错内容如下:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0. 这里举一个例子:txt=open("threekingdoms.txt","r",encoding="utf-8").read(),在运行时就会报错. 要处理这个问题有两个办法,如下: 第一个办法,将编码方式由utf-8改为g