python写文件illegal multibyte sequence问题

今天写了一个python解析xml的脚本,然后把一些log写入到log文件里面,结果写入的途中出现了下图的问题

python写文件illegal multibyte sequence问题_第1张图片

这个问题之前我以为是gbk的原因,结果把python里面的编码设置为gbk之后还是无效。

百度搜索了一下没发现什么好的解决办法,问了问同学,他说应该是打开文件的编码问题,恍然大悟。

# encoding: UTF-8
__author__ = 'Arthur'

import codecs
import re
def changeFileName(oldDirname):
    text=oldDirname
    m = re.search(r'^\S+\-([0-9]+)\-\S+_(\d+)\.jpg$', text)
    if m:
        number1=m.group(1)
        number2=m.group(2)

        print("n1:"+number1)

        print("newdirname:"+number2)

    else:
        print ('not search')


def writeline(string,file):
    if(file):
        if(string):
            string+='\n'
            file.write(string)

if __name__=='__main__':
  f=codecs.open('test.txt','w','utf-8')
  writeline("test1",f)
  writeline("test2",f)
  #str="==================================test3======================================"

  strs="Separate button for Umlauts (full keyboard with Umlaute e.g. Ä-Ö-Ü for German language)"+str(1)
  writeline(strs,f)

如果直接用open方式打开的话,就会报那个错。

值得注意的是,这么写入过后如果要看是否写入成功,也需要把编辑器的编码设置为utf-8.

你可能感兴趣的:(python写文件illegal multibyte sequence问题)