Скажем, у меня есть файл журнала приложений, усиливающееся построчноСохранить данные из цикла for внутри программы?
Jan 13 20:44:25 Think process1: ID1: Request received user=user1
Jan 13 20:44:26 Think process1: ID2: Request received user=user2
Jan 13 20:44:27 Think process2: ID1: user accessed file=file1
Jan 13 20:44:28 Think process1: ID3: Request received user=user3
Jan 13 20:44:29 Think process3: ID1: Request Served token=tok1
Jan 13 20:44:30 Think process2: ID2: user accessed file=file2
Jan 13 20:44:31 Think process3: ID2: Request Served token=tok2
Jan 13 20:44:32 Think process2: ID3: user accessed file=file3
.....
Jan 13 20:59:24 Think process3: ID**N**: user accessed file=file**N**
И мой код выглядит следующим образом
from sh import tail
def received(input_message):
user1 = input_message[2].split('=')
user = user1[1].replace('\n', '')
return(user)
def accessed(input_message):
file1 = input_message[2].split('=')
file = file1[1].replace('\n', '')
return(file)
def served(input_message):
tok1 = input_message[2].split('=')
tok = tok1[1].replace('\n', '')
return(tok)
for line in tail("-f", "/opt/jagan/app.log", _iter=True):
column = line.split(' ')
date = column[0] + ' ' + column[1] + ' ' + column[2]
host = column[3]
process = column[4]
ID = column[5]
message = column[6:]
if "process1" in process:
username = received(message)
print("Username is:" +(username))
if "process2" in process:
filename = accessed(message)
print("filename is:" +(filename))
if "process3" in process:
token = served(message)
print("Token is:" +(token))
В этом, ID является уникальным для каждого запроса. И он пройдет через все процессы. Итак, когда один запрос завершен, я хочу распечатать все необходимые данные при подаче запроса.
Как:
>['user1','file1','tok1']
['user**N**','file**N**','tok**N**']
ВОПРОС 1. Как хранить данные из for
цикла, в рамках программы? Я не храню данные в файле или какой-то БД. Поскольку генерация журналов будет слишком высокой, это повлияет на производительность этой программы.
ВОПРОС 2. Как инициировать действие со всеми данными запроса, когда запрос завершен? Я хочу вызвать действие, когда запрос будет завершен, всю информацию запроса. Я хочу создать списки переменных с переменными данными, а также не хочу сохранять данные в другом месте. И если программа остановится, данные также будут потеряны (я в порядке с этим).
ВОПРОС 1. Как и в переменной? ВОПРОС 2. Выводит переменную из вопроса 1? –
@JagannathNaidu Вы пытались запустить код? потому что у него есть некоторые ошибки ... –
@OferArial: process1, process2 и process3, Enclose внутри кавычек, так как это строки. Исправьте орфографию от показанного до полученного. Я исправил код. Проверьте снова, он будет работать нормально –