Автор оригинала: Pankaj Kumar.
Сегодня мы узнаем о операциях Python FTP. FTP – это аббревиатура для протокола передачи файлов. Также как то, что звучит, этот протокол используется для передачи файлов в сети от источника к машине назначения.
В этом посте на модуле Python FTP мы увидим, как подключиться к FTP-серверу, загрузить и загружать файлы и гораздо больше. Давайте начнем.
Python FTP.
С Python, FTPLIB
модуль Предоставляет все функции, которые нам могут потребоваться выполнить действия по сравнению с протоколом FTP. Давайте начнем исследовать этот урок с простым попыткой подключения.
Подключение к FTP-серверу с помощью функции ()
Мы начнем, сделав подключение к FTP-серверу. Мы будем использовать сервер, публично доступный для использования, ftp.cse.buffalo.edu
Отказ Не стесняйтесь выбирать любой сервер, просто убедитесь, что вы выбираете правильный сервер, в противном случае вы столкнетесь с ошибками подключения.
Мы напишем простой скрипт для подключения к указанному серверу:
from ftplib import FTP # Host to connect to host = 'ftp.cse.buffalo.edu' # Make an Python FTP object and anonymously login ftp = FTP(host) print(ftp.login())
Посмотрите, как мы можем войти без имени пользователя и пароля? Который поддерживается только несколькими серверами. Давайте увидим вывод:
from ftplib import FTP # Host to connect to host = 'ftp.cse.buffalo.edu' port = 8099 # Make an FTP object and anonymously login ftp = FTP(host, port) print(ftp.login())
Позаботьтесь о том, чтобы порт, который вы подключаетесь к фактически поддерживает входящий FTP-соединение.
Чувствовать себя приветственным с getwelcome () функцией
Сервер может заставить вас чувствовать себя приветствовать, вернув сообщение. Это сообщение может быть получено с использованием функции GetWelce (). Простота в использовании, давайте поместим его в примере:
from ftplib import FTP # Host to connect to host = 'ftp.cse.buffalo.edu' # Make an FTP object and anonymously login ftp = FTP(host) print(ftp.login()) print(ftp.getwelcome())
Выход для этого скрипта просто покажет простое сообщение, которое может быть что-нибудь:
Настоящий каталог с функцией PWD ()
Мы можем получить путь в настоящее время рабочего каталога сервера нашего подключения в настоящее время:
from ftplib import FTP host = 'ftp.cse.buffalo.edu' ftp = FTP(host) ftp.login() ftp.cwd('mirror') print(ftp.pwd())
Выход для этого скрипта просто покажет настоящий рабочий каталог:
Доступ к каталогам с функцией Retlelines ()
Теперь, как и открытая SSH Shell, мы можем использовать FTPLIB
Чтобы получить доступ к каталогам на сервере, перемещаться по ним и изменить их на основе потребностей.
from ftplib import FTP # Host to connect to host = 'ftp.cse.buffalo.edu' # Make an FTP object and anonymously login ftp = FTP(host) print(ftp.login()) # List directories in current path print(ftp.retrlines('LIST'))
Посмотрите на последнюю строчку, мы использовали Погрешние (...)
Функция, чтобы перечислить текущие каталоги. Выход для этого скрипта будет:
Изменение каталогов с функцией CWD ()
В приведенном выше примере мы перечислили каталоги наш скрипт в настоящее время. Чтобы добавить, мы можем легко увидеть текущий каталог как:
from ftplib import FTP # Host to connect to host = 'ftp.cse.buffalo.edu' # Make an FTP object and anonymously login ftp = FTP(host) print(ftp.login()) # List directories in current path print(ftp.retrlines('LIST')) # Change into one of the sub-directories ftp.cwd('mirror') print(ftp.retrlines('LIST'))
Здесь мы переключаемся на один из подкуроров, которые мы заметили в более раннем забеге, и мы получаем следующие результаты: прошедший атрибут списка просто вытаскивает файлы и папки в текущем каталоге вместе со своей информацией, которую мы затем печатаем.
Отправить команду на сервер с функцией sendcmd ()
Используя sendcmd ()
Функция, мы можем отправить простую строку команду на сервер и получить ответ строки. Например, мы отправим state command, которая может проверить состояние fo сервер:
from ftplib import FTP host = 'ftp.cse.buffalo.edu' ftp = FTP(host) print(ftp.login()) # Check server status print(ftp.sendcmd('STAT'))
Когда мы запускаем этот скрипт, мы видим полный вывод на нашей консоли:
Загрузка файлов с помощью функции RetBrina ()
Использование модуля FTPLIOB мы можем даже загружать файлы локально. Стоит отметить, что для этого вы должны иметь правильный доступ к серверу и каталогам, а имена файлов и точные пути должны быть известны.
Мы просто доступ к файлу на сервере и загружаем его локально:
from ftplib import FTP host = 'ftp.cse.buffalo.edu' ftp = FTP(host) ftp.login() ftp.cwd('CSE421') print(ftp.retrlines('LIST')) out = '/Users/shubham/README.txt' with open(out, 'wb') as f: ftp.retrbinary('RETR ' + 'README.txt', f.write)
Я добавляю некоторые печатные заявления между, чтобы сделать вывод немного более понятным. Давайте запустим эту программу сейчас: и вот файл, который был загружен: обратите внимание, что вам нужно будет изменить местоположение загрузки файла на основе вашего пути к локальному компьютеру перед запуском этого кода.
Закрыть соединение с close () функцией
Мы должны закрыть FTP-соединение, как только мы закончим с любыми задачами, необходимыми для выполнения:
from ftplib import FTP host = 'ftp.cse.buffalo.edu' ftp = FTP(host) ftp.login() ftp.cwd('mirror') print(ftp.pwd()) ftp.close() print('Connection closed.')
Выход для этого скрипта будет просто показывать настоящий рабочий каталог: помните, мы не можем открыть замкнутый FTP-соединение Python.
В этом уроке мы узнали о различных способах, через которые мы можем получить доступ к FTP-серверу и играть с каталогами и полностью управлять.
Ссылка: API док