Рубрики
Без рубрики

Протокол передачи файлов на Python с использованием модуля ftplib

В этом уроке мы узнаем о том, что такое протокол передачи файлов, и мы реализуем функциональные возможности протокола передачи файлов в Python с помощью

Автор оригинала: Pankaj Kumar.

В этом уроке мы узнаем о том, что такое протокол передачи файлов, и мы реализуем функциональные возможности протокола передачи файлов в Python, используя различные методы.

Что такое протокол передачи файлов или FTP?

FTP-это сетевой протокол для передачи файлов между двумя системами в сети. Он работает как архитектура клиент-сервер, в которой клиентская система может подключаться к серверной системе с аутентификацией или без нее, и клиент может просматривать, извлекать или удалять файлы с серверной машины, если предоставлены соответствующие разрешения.

Как подключиться к серверу с помощью протокола передачи файлов в Python?

Для выполнения различных задач сначала мы должны импортировать модуль ftplib, после чего мы можем использовать функции в модуле для реализации функций.

В следующем коде мы попытались подключиться к ftp.ubuntu.com используя FTP() функцию модуля ftplib , а затем мы вошли на сайт с помощью метода login () . Когда соединение установлено после входа в систему, сервер возвращает приветственное сообщение, которое можно распечатать с помощью метода getwelcome () .

#import module
import ftplib

#define server ftp address
site_addr= "ftp.ubuntu.com"

#make a connection to server
ftp_obj = ftplib.FTP(site_addr)

#login to the server
ftp_obj.login()
print("Connected to "+ site_addr +". Welcome message is:")

#print the welcome message
print(ftp_obj.getwelcome())

#close the connection
ftp_obj.close()

Выход:

Connected to ftp.ubuntu.com. Welcome message is:
220 FTP server (vsftpd)

Следует отметить, что вы должны закрыть соединение в конце программы, используя метод close () .

Выведите имя текущего рабочего каталога

После входа на сервер мы можем распечатать имя текущего рабочего каталога с помощью метода pwd () . Он вызывается на объекте, возвращаемом функцией FTP() , и возвращает абсолютный путь к текущему рабочему каталогу.

#import module
import ftplib
#define server ftp address
site_addr= "ftp.ubuntu.com"
#make a connection to server
ftp_obj = ftplib.FTP(site_addr)
#login to the server
ftp_obj.login()

print("Present Working Directory is:")
#get the name of present working directory
present=ftp_obj.pwd()
print(present)

#close the connection
ftp_obj.close()

Выход:

Present Working Directory is:
/

Печать содержимого каталога

Мы можем распечатать содержимое текущего рабочего каталога с помощью метода dir() на объекте, возвращаемом функцией FTP () . метод dir () просто печатает содержимое текущего рабочего каталога и ничего не возвращает.

#import module
import ftplib
#define server ftp address
site_addr= "ftp.ubuntu.com"
#make a connection to server
ftp_obj = ftplib.FTP(site_addr)
#login to the server
ftp_obj.login()
print("Content of the directory "+ " is:")
#print the content of present working directory
ftp_obj.dir()

#close the connection
ftp_obj.close()

Выход:

Content of the directory  is:
drwxr-xr-x   31 997      997          4096 Dec 24 17:47 cdimage
drwxr-xr-x   28 997      997          4096 Dec 24 18:14 cloud-images
drwxr-xr-x    8 997      997          4096 Dec 18 21:56 maas-images
drwxr-xr-x    5 997      997          4096 May 11  2010 old-images
drwxr-xr-x   13 997      997          4096 Dec 24 17:01 releases
drwxr-xr-x    6 997      997          4096 Dec 24 18:19 simple-streams
drwxr-xr-x    7 997      997          4096 Dec 24 17:54 ubuntu
drwxr-xr-x    4 997      997          4096 Oct 01 01:33 ubuntu-cloud-archive
drwxr-xr-x    7 997      997          4096 Dec 24 18:21 ubuntu-ports

Изменение рабочего каталога

Мы можем изменить текущий рабочий каталог, вызвав метод cwd() для объекта | возвращаемого функцией FTP ()|/. Относительный путь к новому каталогу задается в качестве входных данных для метода cwd () , и он не возвращает никакого значения. Мы будем использовать функцию print () для отображения сообщений.

#import module
import ftplib
#define server ftp address
site_addr= "ftp.ubuntu.com"

#make a connection to server
ftp_obj = ftplib.FTP(site_addr)
#login to the server
ftp_obj.login()
print("Present Working Directory is:")

#get the name of present working directory
present=ftp_obj.pwd()
print(present)
print("Content of the directory "+ " is:")

#print the content of present working directory
ftp_obj.dir()

#change present working directory to "ubuntu"
ftp_obj.cwd("ubuntu")
print("After Change in directory:")
print("Present Working Directory is:")

#get the name of present working directory
present=ftp_obj.pwd()
print(present)
print("Content of the directory "+ " is:")

#print the content of present working directory
ftp_obj.dir()

#close the connection
ftp_obj.close()

Выход:

Present Working Directory is:
/
Content of the directory  is:
drwxr-xr-x   31 997      997          4096 Dec 24 17:47 cdimage
drwxr-xr-x   28 997      997          4096 Dec 24 18:14 cloud-images
drwxr-xr-x    8 997      997          4096 Dec 18 21:56 maas-images
drwxr-xr-x    5 997      997          4096 May 11  2010 old-images
drwxr-xr-x   13 997      997          4096 Dec 24 17:01 releases
drwxr-xr-x    6 997      997          4096 Dec 24 18:24 simple-streams
drwxr-xr-x    7 997      997          4096 Dec 24 17:54 ubuntu
drwxr-xr-x    4 997      997          4096 Oct 01 01:33 ubuntu-cloud-archive
drwxr-xr-x    7 997      997          4096 Dec 24 18:21 ubuntu-ports
After Change in directory:
Present Working Directory is:
/ubuntu
Content of the directory  is:
drwxrwxr-x   37 997      997          4096 Oct 23 11:04 dists
drwxr-xr-x    2 997      997        192512 Dec 24 17:44 indices
-rw-r--r--    1 997      997      20997733 Dec 24 17:44 ls-lR.gz
drwxrwxr-x    6 997      997          4096 Feb 27  2010 pool
drwxr-xr-x    3 997      997          4096 Jun 28  2013 project
lrwxrwxrwx    1 997      997             1 Nov 24  2010 ubuntu -> .

Проверьте размер файла

Мы можем проверить размер файла, используя метод size() модуля ftplib|/. size() метод вызывается для объекта, возвращаемого функцией FTP() , и путь к файлу задается в качестве входных данных для метода. Он возвращает размер файла в байтах в качестве вывода.

#import module
import ftplib

#define server ftp address
site_addr= "ftp.ubuntu.com"

#make a connection to server
ftp_obj = ftplib.FTP(site_addr)

#login to the server
ftp_obj.login()
ftp_obj.cwd("ubuntu")

print("Present Working Directory is:")

#get the name of present working directory
present=ftp_obj.pwd()
print(present)
print("Content of the directory "+ " is:")
ftp_obj.dir()

#print size of "ls-lR.gz"
fsize= ftp_obj.size("ls-lR.gz")
print("Size of file ls-lR.gz is:"+ str(fsize))

#close the connection
ftp_obj.close()

Выход:

Present Working Directory is:
/ubuntu
Content of the directory  is:
drwxrwxr-x   37 997      997          4096 Oct 23 11:04 dists
drwxr-xr-x    2 997      997        180224 Dec 24 18:43 indices
-rw-r--r--    1 997      997      20988844 Dec 24 18:43 ls-lR.gz
drwxrwxr-x    6 997      997          4096 Feb 27  2010 pool
drwxr-xr-x    3 997      997          4096 Jun 28  2013 project
lrwxrwxrwx    1 997      997             1 Nov 24  2010 ubuntu -> .
Size of file ls-lR.gz is:20988844

Вывод

В этой статье мы рассмотрели, как работать с протоколом передачи файлов в Python с помощью модуля ftplib , выполняя операции чтения файлов на удаленном сервере. Оставайтесь с нами для получения дополнительной информации.

Счастливого Обучения!