ftplib— Клієнт протоколу FTP

Модуль визначає такі елементи:

from ftplib import FTP_TLS

FTP( host = '' , user = '' , passwd = '' , acct = '' , timeout = None , source_address = None , * , encoding = 'utf-8' )

  • host - назва сайту

  • user - логін

  • passwd - пароль

  • acct

  • timeout - час очікування

  • source_address

  • encoding - код шифрування

ftps=FTP_TLS('ftp.test.test')-підключення до сайту по протоколу ftp

ftps.login("login","pasword") - введення пароль і логін

FTP.set_debuglevel( level ) - Установіть рівень налагодження примірника. Це контролює кількість надрукованих виводів налагодження. Значення за замовчуванням , 0не дає вихідних даних для налагодження. Значення 1дає помірну кількість налагоджувальних виводів, як правило, один рядок на запит. Значення, що дорівнює 2або більше, створює максимальний обсяг виводу налагодження, реєструючи кожен рядок, надісланий і отриманий через контрольне з’єднання.

FTP.connect( host='', port=0, timeout=None, source_address=None ) - Підключіться до зазначеного хосту та порту. Стандартним номером порту є 21, як зазначено в специфікації протоколу FTP. Рідко потрібно вказати інший номер порту. Цю функцію слід викликати лише один раз для кожного екземпляра; його взагалі не слід викликати, якщо під час створення екземпляра було задано хост. Усі інші методи можна використовувати лише після встановлення підключення. Додатковий параметр timeout визначає час очікування в секундах для спроби з’єднання. Якщо тайм- аут не пройдено, буде використано глобальне налаштування тайм-ауту за умовчанням. source_address — це 2-кортеж , до якого сокет прив’язується як до адреси джерела перед підключенням.(host, port)

Викликає подію аудиту ftplib.connect з аргументами self, host, port.

Змінено у версії 3.3: додано параметр source_address .

FTP.getwelcome( ) - Повернути вітальне повідомлення, надіслане сервером у відповідь на початкове підключення. (Це повідомлення іноді містить застереження або довідкову інформацію, яка може бути актуальною для користувача.)

FTP.login( user = 'anonymous' , passwd = '' , acct = '' ) - Увійдіть як даний користувач . Параметри passwd і acct є необов’язковими та за замовчуванням є порожнім рядком. Якщо не вказано жодного користувача'anonymous' , за умовчанням буде . Якщо користувач , пароль'anonymous' за умовчанням дорівнює . Цю функцію слід викликати лише один раз для кожного екземпляра після встановлення з’єднання; його взагалі не слід викликати, якщо хост і користувач були надані під час створення екземпляра. Більшість команд FTP дозволено лише після входу клієнта в систему. Параметр acct надає «облікову інформацію»; небагато систем реалізують це.'anonymous@'


FTP.abort( ) - Перервати передачу файлу, що триває. Використання цього не завжди працює, але варто спробувати.

FTP.sendcmd( cmd ) - Надішліть простий рядок команди на сервер і поверніть рядок відповіді.

Викликає подію аудиту ftplib.sendcmd з аргументами self, cmd.

FTP.voidcmd( cmd ) - Надішліть простий командний рядок на сервер і обробіть відповідь. Нічого не повертати, якщо отримано код відповіді, що відповідає успіху (коди в діапазоні 200–299). Підніміть error_replyінакше.

Викликає подію аудиту ftplib.sendcmd з аргументами self, cmd.

FTP.retrbinary( cmd, callback, blocksize=8192, rest=None ) - Отримати файл у двійковому режимі передачі. cmd має бути відповідною RETRкомандою: . Функція зворотного виклику викликається для кожного отриманого блоку даних, з однобайтовим аргументом, що передає блок даних. Необов’язковий аргумент blocksize визначає максимальний розмір блоку для читання в об’єкті сокета низького рівня, створеному для фактичної передачі (який також буде найбільшим розміром блоків даних, переданих у callback ). Вибрано розумне значення за замовчуванням. rest означає те саме, що й у методі.'RETR filename'transfercmd()

FTP.retrlines( cmd, callback=None )

Отримати список файлів або каталогів у кодуванні, визначеному параметром кодування під час ініціалізації. cmd має бути відповідною RETRкомандою (див. retrbinary()) або такою командою, як LISTабо NLST(зазвичай лише рядок 'LIST'). LISTотримує список файлів і інформацію про ці файли. NLSTотримує список імен файлів. Функція зворотного виклику викликається для кожного рядка з рядковим аргументом, що містить рядок із видаленим кінцевим CRLF. Зворотний виклик за замовчуванням друкує рядок у sys.stdout.

FTP.set_pasv( val ) -Увімкніть «пасивний» режим, якщо значення значення true , інакше вимкніть пасивний режим. Пасивний режим увімкнено за замовчуванням.

FTP.storbinary( cmd, fp, blocksize=8192, callback=None, rest=None ) -Зберігайте файл у двійковому режимі передачі. cmd має бути відповідною STORкомандою: . fp — це файловий об’єкт (відкритий у двійковому режимі), який читається до EOF за допомогою свого методу в блоках розміру blocksize , щоб надати дані для збереження. Аргумент розміру блоку за замовчуванням дорівнює 8192. Зворотний виклик — це необов’язковий єдиний параметр, який викликається для кожного блоку даних після його надсилання. rest означає те саме, що й у методі."STOR filename"read()transfercmd()


FTP.storlines( cmd , fp , callback = None ) -Зберігати файл у рядковому режимі. cmd має бути відповідною STORкомандою (див storbinary(). ). Рядки зчитуються до EOF з файлового об’єкта fp (відкритого у двійковому режимі) за допомогою його readline() методу, щоб надати дані для збереження. callback — це необов’язковий єдиний параметр, який викликається в кожному рядку після його надсилання.

FTP.transfercmd( cmd , rest = None ) - Ініціювати передачу через з’єднання даних. Якщо передача активна, надішліть команду EPRTабо PORTта команду передачі, визначену cmd , і прийміть з’єднання. Якщо сервер пасивний, надішліть команду EPSVабо PASV , підключіться до нього та запустіть команду передачі. У будь-якому випадку поверніть розетку для підключення.

Якщо вказано необов’язковий rest , RESTкоманда надсилається на сервер, передаючи rest як аргумент. rest зазвичай є байтовим зміщенням у запитуваному файлі, повідомляючи серверу перезапустити надсилання байтів файлу із запитаним зміщенням, пропускаючи початкові байти. Однак зауважте, що transfercmd() метод перетворює rest на рядок із параметром кодування, указаним під час ініціалізації, але перевірка вмісту рядка не виконується. Якщо сервер не розпізнає RESTкоманду, error_replyбуде створено виняток. Якщо це станеться, просто зателефонуйте transfercmd()без аргументу rest .

FTP.ntransfercmd( cmd , rest = None ) - Як transfercmd(), але повертає кортеж з’єднання даних і очікуваний розмір даних. Якщо очікуваний розмір не вдалося обчислити, None буде повернено як очікуваний розмір. cmd і rest означають те саме, що й у transfercmd().

FTP.mlsd( path='', facts=[] ) - Перерахуйте каталог у стандартизованому форматі за допомогою MLSDкоманди (RFC 3659 ). Якщо шлях опущено, передбачається поточний каталог. facts — це список рядків, що представляють тип бажаної інформації (наприклад,). Повертає об’єкт-генератор, утворюючи кортеж із двох елементів для кожного файлу, знайденого на шляху. Перший елемент – ім’я файлу, другий – словник, що містить інформацію про ім’я файлу. Вміст цього словника може бути обмежений аргументом facts , але сервер не гарантує повернення всіх запитуваних фактів.["type", "size", "perm"]

FTP.nlst( argument[, ...] ) - Повертає список імен файлів, які повертає NLST команда. Необов'язковим аргументом є каталог для переліку (за замовчуванням це поточний каталог сервера). Для передачі нестандартних параметрів NLST команді можна використовувати кілька аргументів.


FTP.dir( argument[, ...] ) - Створіть список каталогу, який повертає LISTкоманда, виводячи його на стандартний вивід. Необов'язковим аргументом є каталог для переліку (за замовчуванням це поточний каталог сервера). Для передачі нестандартних параметрів LISTкоманді можна використовувати кілька аргументів. Якщо останній аргумент є функцією, він використовується як функція зворотного виклику , як для retrlines(); за замовчуванням друкується як sys.stdout. Цей метод повертає None.


FTP.rename( fromname , toname ) - Перейменуйте файл fromname на сервері на toname .

FTP.delete( filename ) - Видаліть із сервера файл із назвою ім’я файлу . У разі успіху повертає текст відповіді, інакше викликає error_permпомилки дозволу або error_replyінші помилки.

FTP.cwd( pathname ) - Встановити поточний каталог на сервері.

FTP.mkd( pathname ) - Створіть новий каталог на сервері.

FTP.pwd( ) - Повертає шлях до поточного каталогу на сервері.

FTP.rmd( dirname ) - Видаліть каталог із назвою dirname на сервері.

FTP.quit( ) - Надішліть QUITкоманду на сервер і закрийте з'єднання. Це «ввічливий» спосіб закрити з’єднання, але він може спричинити виключення, якщо сервер відповість помилкою на QUITкоманду. Це передбачає виклик close()методу, який робить FTPекземпляр марним для наступних викликів (див. нижче).

FTP.close( ) - Закрийте з'єднання в односторонньому порядку. Це не слід застосовувати до вже закритого з’єднання, наприклад після успішного виклику до quit(). Після цього виклику FTP екземпляр більше не слід використовувати (після виклику close()або quit()ви не можете повторно відкрити з’єднання, виконавши інший login()метод).

FTP_TLS Objects


FTP_TLS.ssl_version

Версія SSL для використання (за замовчуванням ssl.PROTOCOL_SSLv23).

FTP_TLS.auth( )

Налаштуйте безпечне контрольне з’єднання за допомогою TLS або SSL, залежно від того, що вказано в ssl_versionатрибуті.

Змінено у версії 3.4: метод тепер підтримує перевірку імені хоста за допомогою індикації імені сервераssl.SSLContext.check_hostname ( див . ).ssl.HAS_SNI

FTP_TLS.ccc( )

Повернути канал керування назад до відкритого тексту. Це може бути корисним, щоб скористатися перевагами брандмауерів, які знають, як обробляти NAT із незахищеним FTP без відкриття фіксованих портів.

Нове у версії 3.3.

FTP_TLS.prot_p( )

Налаштуйте безпечне з’єднання даних.

FTP_TLS.prot_c( )

Налаштуйте підключення для передачі даних у відкритому тексті.

виняток ftplib.error_reply

Виняток виникає, коли від сервера надходить неочікувана відповідь.

виняток ftplib.error_temp

Виняток виникає, коли отримано код помилки, що означає тимчасову помилку (коди відповіді в діапазоні 400–499).

виняток ftplib.error_perm

Виняток виникає, коли отримано код помилки, що означає постійну помилку (коди відповіді в діапазоні 500–599).

виняток ftplib.error_proto

Виняток виникає, коли від сервера отримано відповідь, яка не відповідає специфікаціям відповіді протоколу передачі файлів, тобто починається з цифри в діапазоні 1–5.

ftplib.all_errors

Набір усіх винятків (у вигляді кортежу), які методи FTP екземплярів можуть викликати в результаті проблем із з’єднанням FTP (на відміну від помилок програмування, зроблених абонентом). Цей набір включає чотири винятки, перелічені вище, а також OSErrorі EOFError.