Как написать цикл с перебором каждого ip-адреса и записью значения изменения массива row в переменную ftp. Python 3 из переменной ftp

Рейтинг: 0Ответов: 0Опубликовано: 17.01.2023
""""
from ftplib import FTP
#from datetime import datetime

import psycopg2
#подключение к БД где хранятся ip-адреса и отправляются в массива
sql = """
        select ip from a.points
        where enabled and ip between '192.168.1.0' and '192.168.1.254'
        union 
        select ip from b.points 
        where enabled and ip between '192.168.1.0' and '192.168.1.254'
        order by ip
    """
connection = psycopg2.connect(user='xxxxx',pw='xxxxx',host='192.168.10.1',port='5433',database='xxxxxx1')
cursor = connection.cursor()
cursor.execute(sql)
    
array = cursor.fetchall()

#цикл обработки данных из таблицы 
for row in array:
    print(row[0])
    
    connection.close()
#ipшка внутри цикла будет в row[0]

#Получаем список из адресов 
""""192.168.82.2
192.168.82.3
192.168.82.4
192.168.82.5
192.168.82.7
192.168.82.8
192.168.82.9
192.168.82.10
192.168.82.11
192.168.82.12
192.168.82.14
192.168.82.15
192.168.82.16
192.168.82.17
192.168.82.25
192.168.82.26
192.168.82.31
192.168.82.34
192.168.82.35
192.168.82.36
192.168.82.37
192.168.82.38
192.168.82.40
192.168.82.46
192.168.82.47
192.168.82.48
192.168.82.49
192.168.82.50
192.168.82.57
192.168.82.60
192.168.82.106
192.168.82.108
192.168.82.109
192.168.82.116
192.168.82.120
192.168.82.127
192.168.82.128
192.168.82.136
192.168.82.145
192.168.82.146
192.168.82.148
192.168.82.150
192.168.82.164
192.168.82.165
192.168.82.166
192.168.82.169
192.168.82.173
192.168.82.175
192.168.82.176
192.168.82.177
192.168.82.178
192.168.82.180
192.168.82.181
192.168.82.182
192.168.82.183
192.168.82.184
192.168.82.185
192.168.82.187
192.168.82.189
192.168.82.190
192.168.82.191
192.168.82.201
192.168.82.202
192.168.82.203
192.168.82.204
192.168.82.205
192.168.82.206
192.168.82.207
192.168.82.208
192.168.82.209
192.168.82.210 """"

#Задача:После получения переменной запускать цикл который создаст нужный файл IP-address+check_hw.log 
#записав в него данные

ftp = FTP                                      #Т.е вот здесь должно подставляться значение из получаемого списка IP-адресов 
                                                #Первый проход цикла - получение одного файла и сохранение его в каталоге 
                                                #итак каждый проход цикла.

ftp.login('admin','password')
ftp.cwd('/SDCard/Install/')
orig_filename = 'check_hw.log'                                                  #Маска по которой будет выбираться конкретный файл на ftp

# Получить список всех файлов в ftp
ftp.retrlines('LIST *check_hw.log*')                          #Выборка даты изменения файла на ftp
files = ftp.nlst(orig_filename)                                    #Список файлов на ftp 

for orig_filename in files:                                          #Загрузка файла с ftp
    print("Downloading..." + orig_filename)                         #говорим что файл скачали
    ftp.retrbinary("RETR %s" %orig_filename,open(orig_filename, 'wb').write)
    
ftp.close()                                                          #Закрываем соединение

template = "SerialNumber:"                                     
with open('C:/Users/User/Documents/'+orig_filename, 'r') as t:       #Открываем документ и записываем его в переменную t
    for line in t:          
        k=line.find(template)                             #Цикл поиска позиции слова SerialNumber  
        if k>0:                    #Перебор строк и поиск подстроки с ключевым словом SerialNumber
            print(line[k+len(template):].strip())                     #вывести подстроку из строки Line начиная с двоеточия и до конца+убираем пробелы в начале и конце строки """"

Ответы

Ответов пока нет.