Python读取实时数据流示例
1、#coding:utf-8
chose=[ ('foo',1,2), ('bar','hello'), ('foo',3,4) ] defdo_foo(x,y): print('foo',x,y) defdo_bar(s): print('bar',s) fortag,*argsinchose: iftag=='foo': do_foo(*args) eliftag=='bar': do_bar(*args) line='nobody:*:-2:-2:UnprivilegedUser:/var/empty:/usr/bin/false' uname,*fields,homedir,sh=line.split(':') print(sh) fromcollectionsimportdeque defsearch(lines,pattern,history=5): previous_lines=deque(maxlen=history) forliinlines: ifpatterninli: yieldli,previous_lines previous_lines.append(li) #Exampleuseonafile if__name__=='__main__': withopen(r'./somefiles.py')asf: forline,prevlinesinsearch(f,'python',5): forplineinprevlines: print(pline,end='') print(line,end='') print('-'*20)
2、importheapq
portfolio=[ {'name':'IBM','shares':100,'price':91.1}, {'name':'AAPL','shares':50,'price':543.22}, {'name':'FB','shares':200,'price':21.09}, {'name':'HPQ','shares':35,'price':31.75}, {'name':'YHOO','shares':45,'price':16.35}, {'name':'ACME','shares':75,'price':115.65} ] cheap=heapq.nsmallest(3,portfolio,key=lambdas:s['price']) expensive=heapq.nlargest(3,portfolio,key=lambdas:s['price']) print(cheap) print(expensive)
3、读取流数据源
如果数据是来自一个连续的数据源,我们需要读取连续数据,接下来
我们介绍一个适用于许多真是场景的简单解决方案,然而它并不是通用的。
操作步骤:
在本节中我们将想你演示如何读取一个实时变化的文件,并把输入打印出来。
importtime importos importsys iflen(sys.argv)!=2: print('>>sys.stderr,"请输入需要读取的文件名!"') filename=sys.argv[1] ifnotos.path.isfile(filename): print('>>sys.stderr,"请给出需要的文件:\%s\:isnotafile"%filename') withopen(filename,'r')asf: filesize=os.stat(filename)[6] f.seek(filesize) whileTrue: where=f.tell() line=f.readline() ifnotline: time.sleep(1) f.seek(where) else: print(line)
以上这篇Python读取实时数据流示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。