python2 使用openpyxl 报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 20: ordinal not in range(128) 解决方法

# -*- coding: utf-8 -*-
#! /usr/bin/env python
# author: xiao~~

import openpyxl
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8‘)

wb2=openpyxl.Workbook()

wb2.save(‘test1.xlsx‘)
print(‘新建成功‘)

  附上剪短的代码

报错信息

Traceback (most recent call last):
File "F:\PyCharm 5.0.4\helpers\pydev\pydevd.py", line 2411, in <module>
globals = debugger.run(setup[‘file‘], None, None, is_module)
File "F:\PyCharm 5.0.4\helpers\pydev\pydevd.py", line 1802, in run
launch(file, globals, locals) # execute the script
File "D:/test/yf_test/conf/test1.py", line 5, in <module>
import openpyxl
File "F:\Python27\lib\site-packages\openpyxl\__init__.py", line 29, in <module>
from openpyxl.workbook import Workbook
File "F:\Python27\lib\site-packages\openpyxl\workbook\__init__.py", line 5, in <module>
from .workbook import Workbook
File "F:\Python27\lib\site-packages\openpyxl\workbook\workbook.py", line 17, in <module>
from openpyxl.writer.excel import save_workbook, save_dump
File "F:\Python27\lib\site-packages\openpyxl\writer\excel.py", line 31, in <module>
from openpyxl.packaging.manifest import Manifest
File "F:\Python27\lib\site-packages\openpyxl\packaging\manifest.py", line 41, in <module>
mimetypes.init()
File "F:\Python27\lib\mimetypes.py", line 358, in init
db.read_windows_registry()
File "F:\Python27\lib\mimetypes.py", line 258, in read_windows_registry
for subkeyname in enum_types(hkcr):
File "F:\Python27\lib\mimetypes.py", line 249, in enum_types
ctype = ctype.encode(default_encoding) # omit in 3.x!
UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xd7 in position 20: ordinal not in range(128)

将F:\Python27\Lib\mimetypes.py这个文档下屏蔽就可以

我已验证可以成功解决

python2 使用openpyxl 报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 20: ordinal not in range(128) 解决方法

原文地址:https://www.cnblogs.com/xiaoxiao-niao/p/8961005.html

时间: 2024-08-06 22:56:59

python2 使用openpyxl 报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 20: ordinal not in range(128) 解决方法的相关文章

运行python代码报错UnicodeDecodeError: &#39;ascii&#39; codec can&#39;t decode byte 0xe7 in position 91: ordinal not in range(128)的解决办法

1.通过搜集网上的资料,自己多次尝试,问题算是解决了,在代码中加上如下几句即可: import sys reload(sys) sys.setdefaultencoding('utf-8') 2.原因就是Python的str默认是ascii编码,和unicode编码冲突,混淆了python2 里边的 str 和 unicode 数据类型. 3.python3 区分了 unicode str 和 byte arrary,并且默认编码不再是 ascii. 运行python代码报错UnicodeDec

Python报错“UnicodeDecodeError: &#39;ascii&#39; codec can&#39;t decode byte 0xe9 in position 0: ordinal not in range(128)”的解决办法

最近在用Python处理中文字符串时,报出了如下错误: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)   1.原因 因为默认情况下,Python采用的是ascii编码方式,如下所示: ?? python -c "import sys; print sys.getdefaultencoding()" ascii ?? 而Python在进行编

saltstack--关于报错“UnicodeDecodeError: &#39;ascii&#39; codec can&#39;t decode byte 0xe6 in position 6: ordinal not in range(128)”

[[email protected] 桌面]# salt-key [ERROR ] 'ascii' codec can't decode byte 0xe6 in position 6: ordinal not in range(128) Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/salt/utils/parsers.py", line 210, in parse_args pro

安装mysql-python报错:UnicodeDecodeError: &#39;ascii&#39; codec can&#39;t decode byte 0xe2 in position 65: ordinal not in range(128)

安装mysql-python报错: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 65: ordinal not in range(128) 需要先安装(yum): mysql-develpython-devel 安装mysql-python报错:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 65: ordinal

(转载)UnicodeDecodeError: &#39;ascii&#39; codec can&#39;t decode byte 0x?? in position 1: ordinal not in range(128)解决方法

python 安装成功后,默认的编码是ascii码,当程序中出现非ascii编码时,通常就会报这样的错. 处理方法就是将python的默认编码改为uft-8 在python安装文件中的Lib\site-packages里新建一个文件sitecustomize.py,里面代码如下: #encoding=utf8import sys reload(sys)sys.setdefaultencoding('utf8') 然后重启python即可生效 (转载)UnicodeDecodeError: 'as

python安装程序是报这样的错UnicodeDecodeError: &#39;ascii&#39; codec can&#39;t decode byte 0xb0 in position 1: ordinal not in range(128)

python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128) 有2种方法设置python的默认编码: 方法一: 在程序中加入以下代码: import sys reload(sys) sys.setdefaultencoding('utf8') 方法二:

cocos2d-x-3.0beta2创建项目遇到“UnicodeDecodeError: &#39;ascii&#39; codec can&#39;t decode byte 0xd7 in position 9: ordinal not in range(128)”的问题

在Windows平台下 用cocos2d-x-3.0beta2版本下的create_project.py工具创建项目 但是遇到如下问题:UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 9: ordinal not in range(128) 经过查阅资料,原来是文件夹是中文名造成的,所有涉及cocos2d-x的文件夹的文件名都应该是英文的!应该全部英文目录,不能使用中文路径 cocos2d-x-3.0bet

Unexpected error: UnicodeDecodeError: &#39;ascii&#39; codec can&#39;t decode byte 0xd2 in position 69: ordinal not in range(128)-解决办法

经核对,字典中缺少“,”所致: Unexpected error: UnicodeDecodeError: 'ascii' codec can't decode byte 0xd2 in position 69: ordinal not in range(128)-解决办法

【随笔记录】python 处理中文时出现的错误&#39;ascii&#39; codec can&#39;t decode byte 0xe9 in position 0: ordinal not in range(128)&quot; 解决方法

python xml处理中文时出现的错误,记录一下,以免忘记 "UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)" 解决办法,在该python文件的前面加上如下几句,问题得到解决. import sys default_encoding = 'utf-8' if sys.getdefaultencoding() != default_enco