Python读取实时数据流示例

时间:2021-05-23

1、#coding:utf-8

chose = [ ('foo',1,2), ('bar','hello'), ('foo',3,4)]def do_foo(x,y): print('foo',x,y)def do_bar(s): print('bar',s)for tag,*args in chose: if tag == 'foo': do_foo(*args) elif tag == 'bar': do_bar(*args)line = 'nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false'uname,*fields,homedir,sh = line.split(':')print(sh)from collections import dequedef search(lines, pattern, history=5): previous_lines = deque(maxlen=history) for li in lines: if pattern in li: yield li, previous_lines previous_lines.append(li)# Example use on a fileif __name__ == '__main__': with open(r'./somefiles.py') as f: for line, prevlines in search(f, 'python', 5): for pline in prevlines: print(pline, end='') print(line, end='') print('-' * 20)

2、import heapq

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=lambda s: s['price'])expensive = heapq.nlargest(3, portfolio, key=lambda s: s['price'])print(cheap)print(expensive)

3、读取流数据源

如果数据是来自一个连续的数据源,我们需要读取连续数据,接下来

我们介绍一个适用于许多真是场景的简单解决方案,然而它并不是通用的。

操作步骤:

在本节中我们将想你演示如何读取一个实时变化的文件,并把输入打印出来。

import timeimport osimport sysif len(sys.argv) != 2: print('>>sys.stderr,"请输入需要读取的文件名!"')filename = sys.argv[1]if not os.path.isfile(filename): print('>>sys.stderr,"请给出需要的文件:\%s\: is not a file" % filename')with open(filename,'r') as f: filesize = os.stat(filename)[6] f.seek(filesize) while True: where = f.tell() line = f.readline() if not line: time.sleep(1) f.seek(where) else: print(line)

以上这篇Python读取实时数据流示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章