gpt4 book ai didi

python sys.stdin.read() 来自 tail -f

转载 作者:IT王子 更新时间:2023-10-29 01:08:27 25 4
gpt4 key购买 nike

为什么 sys.stdin.read() 不从 tail -f 读取管道输入?

#!/usr/bin/env python
import sys
from geoip import geolite2
def iplookup(srcip):
for ip in srcip.split("\n"):
try:
print(geolite2.lookup(ip))
except:
pass
source = sys.stdin.read()
iplookup(source)

tail -f/var/log/bleh.log | grep -oE '((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.){3}(1?[0 -9][0-9]?|2[0-4][0-9]|25[0-5])' | python mygeoip.py

最佳答案

你可以使用 fileinput :

import sys
from geoip import geolite2
import fileinput

def iplookup(srcip):
for ip in srcip.split("\n"):
try:
print(geolite2.lookup(ip))
except:
pass

for line in fileinput.input():
iplookup(line)

从好的方面来说,您的脚本也会自动接受文件名作为参数。

关于python sys.stdin.read() 来自 tail -f,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30380601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com