Модуль ftplib
определяет класс
ftplib.FTP()
и несколько связанных элементов.
Класс ftplib.FTP()
реализует клиентскую часть протокола FTP. Этот класс можно использовать для написания программ Python, которые выполняют различные автоматизированные задания FTP, такие как зеркалирование других FTP-серверов. Он также используется модулем
urllib.request
для обработки URL-адресов, использующих FTP. Для получения дополнительной информации о FTP (протоколе передачи файлов) смотрите документацию "
Internet RFC 959".
Кодировка по умолчанию - UTF-8 в соответствии с RFC 2640.
Этот модуль не работает или недоступен на платформах WebAssembly wasm32-emscripten
и wasm32-wasi
.
Кто ищет реализацию
серверной части протокола FTP на Python, то смотрите документацию по стороннему
модулю pyftpdlib
.
Пример сеанса с использованием модуля ftplib
:
>>> from ftplib import FTP
# подключаемся к хосту, порт по умолчанию
>>> ftp = FTP('ftp.us.debian.org')
# пользователь `anonymous`, пароль `anonymous@`
# (по умолчанию)
>>> ftp.login()
# '230 Login successful.'
# выбираем каталог "debian"
>>> ftp.cwd('debian')
# '250 Directory successfully changed.'
# список содержимого каталога
>>> ftp.retrlines('LIST')
# -rw-r--r-- 1 4024 4024 1328 Sep 10 10:42 README
# ...
# -rw-r--r-- 1 4024 4024 254664 Dec 10 08:25 extrafiles
# drwxr-xr-x 3 4024 4024 4096 Dec 10 08:18 indices
# -rw-r--r-- 1 4024 4024 17037473 Dec 10 02:35 ls-lR.gz
# drwxr-xr-x 6 4024 4024 90 Oct 05 17:09 pool
# drwxr-xr-x 4 4024 4024 67 Nov 17 2008 project
# drwxr-xr-x 3 4024 4024 77 Oct 10 2012 tools
# drwxr-xr-x 26 4024 4024 4096 Aug 14 2021 zzz-dists
# '226 Directory send OK.'
# сохраняем файл 'README' на диск
>>> with open('README', 'wb') as fp:
... ftp.retrbinary('RETR README', fp.write)
# '226 Transfer complete.'
# отключаемся от FTP
>>> ftp.quit()
# '221 Goodbye.'