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 中国大陆许可协议进行许可。