python中编码发生错误。
天蓬老师
天蓬老师 2017-04-18 10:06:02
0
2
460

linux环境下发生编码错误。windows下正常。
linux下已经在命令行改过编码格式,LANG=zh_CN.UTF-8

UnicodeEncodeError: 'latin-1' codec can't encode characters in position 4-6: ordinal not in range(256)

最前面已经有 # -- coding:utf-8 --

这里写的是读取本地excel表格的表名。表名有数字和汉字。是在print的时候报错。

excel_files = get_excel_files(config.get_standard_template_files())#os.walk获得excel文件

standard_template_infos = {}
for file in excel_files:
    wb = xlrd.open_workbook(file)
    sheet_names = wb.sheet_names()
    for sheet_name in sheet_names:
        standard_template_id = get_standard_template_id(sheet_name)
        if not standard_template_id:
            print '请检查文件【%s】中的sheet页面【%s】。' % (file, sheet_name)
            continue
        sheet = wb.sheet_by_name(sheet_name)
        point_codes = []
        nrows = sheet.nrows
        if nrows <= 2:
            continue
        print sheet_name

def get_standard_template_id(sheet_name):#在这个函数中报错

pattern = u'^(\d{5})'
match = re.match(pattern, sheet_name)
if match is not None:
    code = sheet_name[0:5]
    return code
else:
    print sheet_name#在这里报错
return None

linux下python版本2.7.3.报错,
windows下python版本 2.7.13正常运行
求指教

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

Antworte allen(2)
刘奇

windows下的特殊编码,你可能需要转换,详情移步http://stackoverflow.com/ques...

黄舟

从错误信息可以得知,你的 Linux 系统上 Python 使用的默认编码是 latin-1
如果你正确设置了 LANGLC_ALL 环境变量还出错的话,可以试试再设置 PYTHONIOENCODING 环境变量:

export PYTHONIOENCODING=utf-8
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!