Python读取实时数据流示例

yipeiwu_com6年前Python基础

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判断端口是否打开的实现代码

复制代码 代码如下:#!/usr/bin/env python# name IsOpen.pyimport osimport socketdef IsOpen(ip,port):&nbs...

python直接获取API传递回来的参数方法

之前用python调用API存JSON的时候试用了很多方法,现在调用API直接获取参数的时候也是查了好多例子(毕竟我是一个初学者)。 结果让我发现了,原来只用把之前写的方法中去掉传参即可...

Python基于递归算法实现的汉诺塔与Fibonacci数列示例

Python基于递归算法实现的汉诺塔与Fibonacci数列示例

本文实例讲述了Python基于递归算法实现的汉诺塔与Fibonacci数列。分享给大家供大家参考,具体如下: 这里我们通过2个例子,学习python中递归的使用。 1. 找出Fibona...

Python3 正在毁灭 Python的原因分析

Python 3毫不费力地成为发生在Python社区里最糟糕的事。我还记得第一次使用Python的时候,我还在花大量时间在C++这块上,而Python就像是我的一次开光。我可以打开文本编...

Python Matplotlib实现三维数据的散点图绘制

Python Matplotlib实现三维数据的散点图绘制

一、背景   近期项目即将开展,计划第一步就是实现数据的可视化,所以先学习一下数据展示相关Demo。选用Python2.7与Matplotlib来实现,平台采用Pycharm,值得一提的...