codec&IO
Table of Contents

codec

最简写法: # coding: utf8

被解成unicode的样子 s==u'\u4e00'
这个样子可以用来编码 s.encode('utf8'),得到'\xe4\xb8\x80' 编码后才能用f.writelins()写入文件

内部处理用utf8

对于 s=='\u4e00' 没有u 则有 s.decode('unicode-escape')

f.read(),随时加上.decode('utf-8')

lxml

先确保html经过了utf-8解码,即code = html.decode('utf-8', 'ignore'),否则解析出错。
因为中文被编码成utf-8之后变成 '/u2541' 之类的形式,lxml一遇到 “/”就会认为其标签结束。

IO

f=open(uri,mode)

属性

- closed #标记文件是否已经关闭,由close()改写  
- encoding #文件编码
- mode #打开模式  
- name #文件名

方法

F.read([size]) #size为读取的长度,以byte为单位
F.readline([size]) 
#读一行,如果定义了size,有可能返回的只是一行的一部分
F.readlines([size]) 
#把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。

F.write(str) 
#把str写到文件中,write()并不会在str后加上一个换行符
F.writelines(seq) 
#把seq的内容全部写到文件中。这个函数也只是忠实地写入,不会在每行后面加上任何东西。

F.close() 
F.next() 
#返回下一行,并将文件操作标记位移到下一行。把一个file用于for ... in file这样的语句时,就是调用next()函数来实现遍历的。
知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。