我正在使用python脚本生成以下输出
import re
import sys
import socket
conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
conn.connect(('10.10.10.10', 25001))
conn.send('status\n')
data = conn.recv(16777216)
conn.close()
print data
脚本输出
session 3594154272 xwf9VgJQfRSSPBCyXYVRzlw==foo xh_iUVQ6JRieFv70JjDVOnQ==bar 13584
stream 102.22.133.12:33562 173.24.54.19:39814 10.10.10.10:12838 39382628/29008576/68391204
session 3363219694 xiXdeg8oGTQ6MYZ-Z5q4iKw==foo xVBsa0nlZT4-vOLA8P-WxSw==bar 2319
stream 71.22.223.192:43718 115.125.65.61:41126 10.10.10.10:12802 4243204/9624660/13867864
....
....
....
现在我想要任何输出中以stream
开头的行,所以我使用以下逻辑,但它不起作用
import re
import sys
import socket
conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
conn.connect(('10.10.10.10', 25001))
conn.send('status\n')
data = conn.recv(16777216)
conn.close()
# parse line contain stream
for line in data:
if re.match(r'stream', line):
print line,
你的}。而且使用^{} 而不是regex(更少的资源消耗)更容易。只需按如下方式更改代码:
data
是一个巨大的string
,而不是你所期望的list
{其中
n
是data
中的总行数。如果您只想计算遇到"stream"
的特定时间:相关问题 更多 >
编程相关推荐