Найти - Пользователи
Полная версия: FTP - как перехватить ошибку
Начало » Python для новичков » FTP - как перехватить ошибку
1
OzMod
 from ftplib import FTP
def FTPConnect():
    ftp = FTP("192.168.0.77")
    ftp.login("admin", "lqrs!15d77")
    ftp.cwd("OzFILES")
    DctF = ftp.nlst()    
    ftp.quit()
    x = DctF.index("Dir")    здесь вписываем дирректорию
    try:
       print (DctF[x])
    except ValueError:
        print ("No")
FTPConnect()
когда я вписываю для проверки несуществующию дирректорию то вылетает ошибка ( ПОМОТИТЕ КАК ПЕРЕХВАТИТЬ ЭТУ ОШИБКУ)
JOHN_16
вы как бы сложным путем пошли
 if 'Dir' in DctF:
...
OzMod
JOHN_16
А так не работает, выдает ту же ошибку
ВОТ ПРИМЕР НЕБОЛЬШОЙ…

 import sys, os, sys, getopt, ftplib, time
from ftplib import FTP
# SERVER AND PATH---------
FTPServer = input("Сервер: ")
print ("#----------------------------#")
FTPWay = input("Путь: ")
# LOGIN AND PASSWORD---------
FTPLogin = input("Логин: ")
FTPasswd = input("Пароль: ")
print ("")
print ("#----------------------------#")
def FTPConnect():
    global FTPWay,FTPWayDEL
    os.system("clear")
    d = []
    id = 0
    ftp = FTP(FTPServer)
    ftp.login(FTPLogin, FTPasswd)
    ftp.cwd(FTPWay)
    ftp.dir(d.append)
    DctF = ftp.nlst()
    ftp.quit()
    for dig in d:
        print (id,[dig])
        id = id + 1
    # OpenFTP---------
    print ("")
    print (" 0 - Сменить директорию ")
    
    OpFTPSelect = input("Выбирите действие: ")
    NEWDir = input("Введите адрес новой директории: ")
    FTPWay = FTPWay+"/"+NEWDir
    if OpFTPSelect == "0":
        if NEWDir in DctF:
            print ("Есть такой адрес.. ")             [b]А Тут всё работает нормально[/b]
            FTPConnect()
        else:
            print ("Нет такого адреса.. ")            [b]А вот тут ошибка не переходит на FTPConnect()[/b]
            FTPConnect()
            
FTPConnect()
JOHN_16
OzMod
не понятно что у вас не работает и какая ошибка
OzMod
JOHN_16
Вот что пишет

 Traceback (most recent call last):
  File "<ipython-input-3-926e87e6d458>", line 1, in <module>
    runfile('/root/FTP/new.py', wdir='/root/FTP')
  File "/etc/spyder/spyder/utils/site/sitecustomize.py", line 707, in runfile
    execfile(filename, namespace)
  File "/etc/spyder/spyder/utils/site/sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)
  File "/root/FTP/new.py", line 65, in <module>
    FTPConnect()
  File "/root/FTP/new.py", line 63, in FTPConnect
    FTPCon()
  File "/root/FTP/new.py", line 22, in FTPCon
    ftp.cwd(FTPWay)
  File "/usr/lib/python3.5/ftplib.py", line 630, in cwd
    return self.voidcmd(cmd)
  File "/usr/lib/python3.5/ftplib.py", line 277, in voidcmd
    return self.voidresp()
  File "/usr/lib/python3.5/ftplib.py", line 250, in voidresp
    resp = self.getresp()
  File "/usr/lib/python3.5/ftplib.py", line 245, in getresp
    raise error_perm(resp)
error_perm: 550 OzFILES/tr55: No such file or directory
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB