Должны быть разные способы найти строку в текстовом файле с помощью python, но как лучше? (для скорости, для ресурсов ..)
Моя первая идея была такой, как показано ниже.
file = open('/home/socfw/src/edl/outbound_monthly.txt')
inputIP = '127.0.0.1'
while (1):
line = file.readline()
if inputIP in line:
print("ok")
break
Но, это слишком медленно для правильного использования веб-службы (на самом деле это backend logi c моего веб-сервиса) TXT-файл выглядит так, как показано ниже
test.txt (адреса IPV4 находятся здесь, и их число составляет почти 60 КБ)
x.x.x.x
x.x.x.x
.
.
.
.
Мой исходный код вызывает 100-процентную загрузку ЦП для несколько минут, поэтому я хочу найти другой путь. Есть ли хорошее решение для меня? заранее спасибо.
Спасибо, что ответили мне. Я изменил свои источники, как показано ниже.
with open('/home/socfw/src/edl/outbound_monthly.txt') as outMonIPs:
ip = set(line.strip() for line in outMonIPs)
inputIP = '111.90.150.249'
#while True:
if inputIP in ip:
print("ok")
# break
else:
print("no")
# break
У меня есть еще один вопрос, должен ли я использовать loop
для этой работы? Я думаю, что l oop больше не требуется, когда я сохраняю весь файл в памяти.