есть файлы с логами app.log.gz, которые лежат в /2022/месяц/год/, в логе нужно найти запись 'PASS" => '(3 случайных числа)', как пример 'PASS' => '564', нужно заменить случайные трехзначные числа на ***, чтобы получилось так 'PASS' => '***'
скрипт должен пробежаться по всем файлам в папках
в Python не силен, сделал начало скрипта, но застрял на re.search() как через него найти 'PASS' => '3 случайных числа', так же попробовал задать re.search(r'[0-9][0-9][0-9]' находится только одна запись в логе, дальше не ищет
import os.path
import gzip
import re
for root, dirs, files in os.walk("2022"):
for file in files:
if file.endswith('app.log.gz'):
path_file = os.path.join(root, file)
with gzip.open(path_file, 'rb') as oldfile:
oldfile = str(oldfile.read())
data = re.search(r'[0-9][0-9][0-9]', str(oldfile))
print(data)
вывод <re.Match object; span=(16, 19), match='202'>
#with gzip.open(path_file + 'new', 'w') as newfile:
# newfile.write(oldfile).