[python IO学习篇]补充打开中文路径的文件

http://blog.csdn.net/mottolinux/article/details/52560062
1 关于Python编码的基本常识 在python里面 “明文”是unicode类型和str , “密文”是其他的编码格式 如gbk utf
-8 latin-1等等 编码: “明文”->”密文” .encode([目标编码格式]) 对象必须为unicode类型 解码: “密文”->”明文” .decode([源编码格式]) 对象为str类型 对于汉字 一共有三大类编码方式 以中文汉字”李”为例子 a. unicode类 机器码 \x67\x4e unicode(python表示) \u674e HTML Entity &#x674E UTF-16(BE) 0x674E UTF-32(BE) 0x0000674E b. UTF-8类 机器码 \xe6\x9d\x8e UTF-8(python表示) \xe6\x9d\x8e URL Escape Code %E6%9D%8E Octal Escape Sequence \346\235\216 c. gb类 机器码 \xc0\xee gb2312 gbk gb18030 \xc0\xee
2 设置 .py文件上的中文编码格式
    
    (1)py文件内容上出现字符串上的中文
    (2)包括前面带u的(转换成unicode格式的字符串) 首先也是根据设置的文件编码格式读取字符串文字量 再作unicode的转换
    (3)如果添加了#coding=utf-8,则将中文按utf-8转成unicode
    (4)如果没有添加#coding=utf-8,则按系统默认的编码格式
    (5)系统的默认编码,获取代码:
            sys.getdefaultencoding()

3 如何设置.py文件的编码格式:
    (1)#coding=<encoding>
    
    (2)<encoding>根据编辑器不同而不同
            sublime 编辑器默认是utf-8
            win7自带的操作系统:asciii /gbk--要读取中文,要gbk
            可以另存为:utf-8
4 win7文件名是中文或者文件夹是中文
    (1)都是gbk编码
    (2)读写文件时,必须open(.....encode('gbk'),'r')
5 win7文件上的内容包含中文
    (1)和4的不一样
    (2)文件的内容要根据编码的格式(记事本可能另存为)
    (3)建议编码成utf-8,sublime打开不需要转换
6 爬虫结果的存储
    (1)现在的网页基本都是UTF-8编码(HTML5默认编码)
    (2)经过BeautifulSoup处理后的HTML元素内容 类型为NavigableString
    (3)可以直接print 由第3点可推断出 NavigableString底层类型为unicode
    (4)经过.replace()方法后可转换为unicode类型

7 不提倡
    (1)不使用sys.setdefaultencoding(‘utf-8’)解决编码问题 
8 其他
    (1)字符串中间处理过程全部转化为unicode处理 只在数据的入口和出口作相应的.decode()和.encode()处理

 

posted @ 2017-06-18 13:42  liuzhipenglove  阅读(1811)  评论(0编辑  收藏  举报