问题:
如图2,文件名带中文,run后报错 ,如图3,搜索资料后 发现 python 中的编码问题,字符串大概分为str和unicode两种形式,其中str常用的编码类型为u8,gb2312,gbk等,python使用unicode是作为基础类型。如图1,str记录的是字节数组,只是某种编码的存储格式,终于输出到文件或是打印出来是什么格式,完全取决于其解码的编码将他解码成什么样子;Unicode是一种类似于符号集的抽象编码,它只规定了符号的二进制代码,却没有规定这个二进制代码该如何存储,也就是它只是一种内部表示,不能直接保存,所以存储时需要规定一种存储形式,比如utf-8等 。
图1
图2
图3
解决:
python 文档规定open(filename, 'w') ,中的filename必须是Unicode编码,因文件头已经加了#coding=utf-8,所以在使用filename时需要将filename解码为unicode。