美文网首页程序员
python codecs.open

python codecs.open

作者: 天凉玩个锤子 | 来源:发表于2019-10-09 20:43 被阅读0次

    在进行爬虫或者其他方式得到数据写入文件时会有编码不统一的问题,所以就一般都统一转换为Unicode编码。

    >>> line2 = u'我爱祖国'
    >>> fr.write(line2)
    
    Traceback (most recent call last):
      File "<pyshell#4>", line 1, in <module>
        fr.write(line2)
    UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11: ordinal not in range(128)
    
    

    为了避免上述错误,可以将line2编码成str类型,但是太麻烦,还需要先decode为Unicode然后再encode为str。

    input文件(gbk, utf-8...) ----decode-----> unicode -------encode------> output文件(gbk, utf-8...)

    使用codecs.open()代替这一繁琐操作

    >>> import codecs
    >>> fw = codecs.open('test1.txt','a','utf-8')
    >>> fw.write(line2)
    >>>
    

    写入成功

    文件的打开模式 含义
    ‘r’ 只读模式。如果文件不存在,返回异常FileNotFoundError,默认值;
    ‘w’ 覆盖写模式,文件不存在则创建,存在则完全覆盖;
    'x' 创建写模式,文件不存在则创建,存在则返回异常FileExistError;
    ‘a’ 追加写模式,文件不存在则创建,存在则在文件最后追加内容;
    ‘b’ 二进制文件模式;
    ‘t’ 文本文件模式,默认值;
    '+' 与r/w/x/a一同使用,在原功能的基础上增加同事读写的功能

    相关文章

      网友评论

        本文标题:python codecs.open

        本文链接:https://www.haomeiwen.com/subject/oocnpctx.html