Python爱好者Python中文社区编程语言爱好者

解决在Windows使用print报错的问题

2016-09-29  本文已影响135人  远飞的大雁2010

在Windows环境下,使用print打印中文时时常会碰到打印不出而报错的问题,这个很让人讨厌。其问题的根源在于Python3使用utf8字符串,打印时遇到GBK无法解码的就会报错。我们可以用一种简单粗暴的方式进行解决。

首先重新写一个打印函数,其代码如下:


def fprint(*args,sep=' ',end='\n',replace='',**kw):
    '''force print, used in Windows,解决打印GBK问题
    其中replace是遇无法打印字符的替代字符'''
    try:
        print(*args,sep=sep,end=end,**kw)
    except UnicodeEncodeError:
        s = sep.join(str(x) for x in args)
        for c in s:
            try:
                print(c,end='')
            except UnicodeEncodeError:
                print(replace, end='')
        print(end,end='')

然后在使用fprint来替代print即可。fprint函数比print函数多了一个参数replace,主要是遇到不能转码字符时使用replace指定的字符来替代。

上一篇 下一篇

猜你喜欢

热点阅读