Проверка существования каталога на FTP с использованием Python3 - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь проверить, существует ли каталог из списка каталогов на FTP-сервере, и если да, то сценарий должен изменить рабочий каталог на существующий каталог, чтобы создать новый каталог, но я просто могу проверьте, существует ли каталог, используя следующий код:

import ftplib
import sys

def check(hostlist):
    users = ["anonymous","ftp","upload"]
    passwords = open('passwords.txt','r').read().splitlines()
    hostlist = sys.argv[1]
    directories = ["incoming","upload","ftproot"]
    hosts = open(hostlist,'r').read().splitlines()
    for host in hosts:
        for user in users:
            for password in passwords:
                try:
                    connection = ftplib.FTP(host.replace(':21',''))        
                    if '230' in connection.login(user=user,passwd=password):
                        dirs = []
                        connection.dir(dirs.append)
                        if directories[0] in dirs:
                            connection.cwd(directories[0])
                            connection.mkd("newdir")
                            logfile = open('results.txt','a')
                            logfile.write(host+" User: "+user+" Password: "+password+" Writeable: "+directories[0]+" \n")
                            logfile.close()
                            connection.quit()
                        elif directories[1] in dirs:
                            print(directories[1])
                        else:
                            print("No Directory found!!!")
                except ftplib.all_errors as e:
                    print(e)

check(sys.argv[1])

1 Ответ

0 голосов
/ 23 февраля 2020

Не уверен, проверьте, что это именно то, что вам нужно , иначе пост ваш текущий ошибка / вывод

def check(hostlist):
    users = ["anonymous","ftp","upload"]
    passwords = open('passwords.txt','r').read().splitlines()
    hostlist = sys.argv[1]
    directories = ["incoming","upload","ftproot"]
    hosts = open(hostlist,'r').read().splitlines()
    for host in hosts:
        for user in users:
            for password in passwords:
                try:
                    connection = ftplib.FTP(host.replace(':21',''))        
                    if '230' in connection.login(user=user,passwd=password):
                        dirs = []
                        connection.dir(dirs.append)
                        for dct in directories:
                            if dct in dirs:
                                connection.cwd(dct)
                                connection.mkd("newdir")
                                logfile = open('results.txt','a')
                                logfile.write(host+" User: "+user+" Password: "+password+" Writeable: "+directories[0]+" \n")
                                logfile.close()
                                connection.quit()
                        else:
                            print("No Directory found!!!")
                except ftplib.all_errors as e:
                    print(e)
...