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設計】。