1. Python 中向文件中写入内容的时候如果想每写一个就输入一个回车, 做法是: f.write(str + \n)\n 是要加引号的, 写入的时候 unix 系统会直接写 \ n, win 系统会自动替换为 \ r\n 如果在此处写入 \ r\n, 则 windows 上这里相当于回车加上再空一行
2. 在 windows 操作系统上一定要注意 \ 才是转义字符,/ 是除,// 是取余
3. Python 中 range() 的三个参数分别是起始元素, 终止值, 步长但是终止值是不包括在里面的这个返回的是一个列表, 是一个可迭代对象
4. 使用 lxml 这个库的时候 lxml.etree.parse 和 lxml.etree.html 都是返回一个 ElementTree Object(节点树对象)Parse 方法是从文件流对象中生成, HTML 是从字符串对象中生成然后使用 xpath 方法进行解析使用 parse 和 xpath 方法的时候, 有中文时可能会有乱码现象, 这是因为使用 HTMLParser 生成解析器对象的时候没有设置好 encoding=utf-8
5. 简单地讲, yield 的作用就是把一个函数变成一个 generator, 带有 yield 的函数不再是一个普通函数, Python 解释器会将其视为一个 generator, 调用 fab(5) 不会执行 fab 函数, 而是返回一个 iterable 对象! 在 for 循环执行时, 每次循环都会执行 fab 函数内部的代码, 执行到 yield b 时, fab 函数就返回一个迭代值, 下次迭代时, 代码从 yield b 的下一条语句继续执行, 而函数的本地变量看起来和上次中断执行前是完全一样的, 于是函数继续执行, 直到再次遇到 yield 一个带有 yield 的函数就是一个 generator, 它和普通函数不同, 生成一个 generator 看起来像函数调用, 但不会执行任何函数代码, 直到对其调用 next()(在 for 循环中会自动调用 next()) 才开始执行虽然执行流程仍按函数的流程执行, 但每执行到一个 yield 语句就会中断, 并返回一个迭代值, 下次执行时从 yield 的下一个语句继续执行看起来就好像一个函数在正常执行的过程中被 yield 中断了数次, 每次中断都会通过 yield 返回当前的迭代值另一个 yield 的例子来源于文件读取如果直接对文件对象调用 read() 方法, 会导致不可预测的内存占用好的方法是利用固定长度的缓冲区来不断读取文件内容通过 yield, 我们不再需要编写读文件的迭代类, 就可以轻松实现文件读取
来源: http://www.bubuko.com/infodetail-2528408.html