标签:pyhton text python学习 读取 print 内部测试 休眠 access 参考手册
**yield的作用是使函数生成一个结果序列而不是一个值,任何使用yield的函数都称为生成器,调用生成器会创建一个对象,该对象通过连续调用next()或者__next__()方法生成结果序列**
>>> def count(n,m):
>>> print(‘这是一个循环外部测试‘)
>>> while n>0:
>>> print(‘这是一个循环内部测试‘)
>>> yield n,m
>>> n-=1
>>> c=count(5,2)
>>> c.__next__()
这是一个循环外部测试
这是一个循环内部测试
5,2
首先我定义了生成器,利用了yield关键词,但是注意,我没有像其它列子一样使用单个参数,yield的后面是两个参数,这里就是为了提醒,yield后面可以跟多个参数,他的后面参数表示要传给yield的这个关键词的参数,甚至可以用表达式,但是一定要用括号括起来,比如yield (n+3),这样的参数也可以
>>> c.__next__()
这是一个循环内部测试
4,2
>>> c.__next__()
这是一个内部循环测试
3,2
>>> c.__next__()
这是一个内部循环测试
2,2
利用pyhton实现linux上的tail -f |grep python这个命令
import time
def tail(f):
f.seek(0,2) #移动到EOF
while True:
line=f.readline()
if not line:
time.sleep(0.1) #尝试读取一个文件,如果没有,休眠并继续
continue
yield line
def grep(lines,searchtext):
for line in lines:
if searchtext in line:yield line
wwwlog=tail(open(‘access-log‘))
pylines=grep(wwwlog,‘python‘)
for line in pylines:
print(line)
标签:pyhton text python学习 读取 print 内部测试 休眠 access 参考手册
原文地址:https://www.cnblogs.com/missed-forest/p/9782118.html