class Main: def __init__(self, ip_addr, mask, ident_number): self.ip_addr = ip_addr self.mask = mask self.ident_number = ident_number input_file = 'data/log_test.txt' read_file = open(input_file, mode='r', encoding='latin_1') output_file = 'data/info_in_log.txt' write_file = open(output_file, mode='w', encoding='latin_1') def search_info_inline(self): for num, line in enumerate(obj1.read_file, 0): if self.ip_addr in line: if self.mask in line: if self.ident_number in line: print(" Line № " + str(num) + " " + line) obj1.write_file.write(" " + line) obj1 = Main('183.39.242.81', 'CHN', '1') obj1.search_info_inline()
[code python][code python][/code][/code]
Я только начал писать код на python, поэтому принимается любая критика))
Что я хочу сделать:
Есть лог-файл, пользователь вводит ip-адрес, маску названия лога и числовой идентификатор, по которому нужно найти информацию в файле.
Необходимо написать функцию, которая по входным данным найдёт:
1. Строку в логе с идентификатором.
2. Выведет +100 и -100 строк от этого идентификатора.(реализация в процессе)
Примерно так выглядит файл:
183.39.233.3 # 2017-09-11, 183.39.233.3, CHN, 1
183.39.233.101 # 2017-09-09, 183.39.233.101, CHN, 1
183.39.233.232 # 2017-09-05, 183.39.233.232, CHN, 1
183.39.235.31 # 2017-09-10, 183.39.235.31, CHN, 1
и еще, не совсем понял как работает глобальные переменные в python, pycharm ругается на глобальную переменную внутри функции, если указать без объекта класса(например, obj1.read_file)