Python读取实时数据流示例


Posted in Python onDecember 02, 2019

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 deque
def 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 file
if __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 time
import os
import sys

if 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读取实时数据流示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python pickle 和 shelve模块的用法
Sep 16 Python
简单掌握Python中glob模块查找文件路径的用法
Jul 05 Python
Python实现的手机号归属地相关信息查询功能示例
Jun 08 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
Jun 15 Python
python如何在列表、字典中筛选数据
Mar 19 Python
Python正则表达式和元字符详解
Nov 29 Python
Python基础之循环语句用法示例【for、while循环】
Mar 23 Python
详解DeBug Python神级工具PySnooper
Jul 03 Python
浅谈python累加求和+奇偶数求和_break_continue
Feb 25 Python
Matplotlib 绘制饼图解决文字重叠的方法
Jul 24 Python
Python利器openpyxl之操作excel表格
Apr 17 Python
写好Python代码的几条重要技巧
May 21 Python
简单了解python元组tuple相关原理
Dec 02 #Python
python实现智能语音天气预报
Dec 02 #Python
Python:二维列表下标互换方式(矩阵转置)
Dec 02 #Python
python 实现二维列表转置
Dec 02 #Python
python列表推导式入门学习解析
Dec 02 #Python
Python 矩阵转置的几种方法小结
Dec 02 #Python
numpy.transpose()实现数组的转置例子
Dec 02 #Python
You might like
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
2011/12/19 PHP
浅谈php和.net的区别
2014/09/28 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
javascript 寻找错误方法整理
2014/06/15 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
jquery对象和DOM对象的相互转换详解
2016/10/18 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
浅谈Vue 性能优化之深挖数组
2018/12/11 Javascript
vue+iview 兼容IE11浏览器的实现方法
2019/01/07 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
深入理解Vue keep-alive及实践总结
2019/08/21 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
python友情链接检查方法
2015/07/08 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
python dumps和loads区别详解
2020/02/04 Python
Python定义一个Actor任务
2020/07/29 Python
python基于win32api实现键盘输入
2020/12/09 Python
加拿大奢华时装品牌:Mackage
2018/01/10 全球购物
综合办公室个人的自我评价
2013/12/22 职场文书
学生会部长竞聘书
2014/03/31 职场文书
中国入世承诺
2014/04/01 职场文书
大学生英语演讲稿
2014/04/24 职场文书
商业项目策划方案
2014/06/05 职场文书
学生安全责任书模板
2014/07/25 职场文书
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
OpenCV实现普通阈值
2021/11/17 Java/Android