Как проверить, присутствуют ли две разные строки из двух разных файлов в третьем файле? - PullRequest
0 голосов
/ 19 сентября 2018

Я хочу проверить, присутствуют ли две разные строки из двух разных файлов в третьем файле, и если они присутствуют, запишите эту строку в четвертый файл.Набор строк - это адреса IPv4.Я получаю пустой файл, даже если строки присутствуют в обоих файлах.Также я хочу реализовать многопоточность / многопроцессорность, чтобы ускорить процесс, если это возможно.Большое спасибо за любые предложения / помощь заранее.

Текстовый файл slave_list содержит следующую запись:

hostA 192.168.15.32
hostB 192.168.15.33
hostC 192.168.15.37

Текстовый файл static_ip_list содержит следующую запись:

192.168.100.10
192.168.100.12
192.168.100.14

slave_logfile имеет следующую запись:

1536043051.176  59320 192.168.100.10 TCP_MISS/200 21830 CONNECT www.google.com:443 - 192.168.15.32

Код:

from datetime import datetime, timedelta
import os
import string
import sys


slave_list = sys.argv[1]
static_ip_list = sys.argv[2]
append_log = open('/home/top10_domain_accessed/logs/append_logs.txt', 'a')
def file_path (slave_list):
  count = 1
  while(count <=30):
  Nth_days = datetime.now() - timedelta(days=count)
  date = Nth_days.strftime("%Y%m%d")
  yr_month = Nth_days.strftime("%Y/%m")
  file_name = 'local2' + '.' + date
  with open(slave_list) as file:
        for line in file:
            string = line.split()
            slave_name = string[0]
            slave_ip = string[1]
            log_path = "/LOGS/%s/%s" %(slave_name, yr_month)
            slave_logfile = os.path.join(log_path, file_name)
            if os.path.exists(slave_logfile):
               log_read = open(slave_logfile, 'r')
               for line in log_read:
                 if slave_ip in line:
                    with open(static_ip_list) as ip_list:
                       for static_ip in ip_list:
                          static_ip = static_ip.rstrip()
                          if static_ip in line:
                             append_log.write(line + '\n')
            else:
             pass

        count = count + 1

if __name__ == '__main__':
     file_path(slave_list)
...