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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。