Робота з ftp

File Transfer Protocol (FTP) (Протокол Передачі фото) використовується багатьма компаніями і організаціями для передачі даних. Python містить модуль ftplib. який реалізує клієнтську частину протоколу FTP. Ви можете дізнатися всю цікаву для вас інформацію про FTP, звернувшись до документа RFC 959 в інтернеті. Однак, в даній статті ми пройдемося лише по ключових питаннях даної теми:

  • Підключення до сервера FTP
  • Навігація по структурі
  • Завантаження файлів з сервера FTP
  • Заливка файлів на сервер FTP

Підключення до сервера FTP

Робота з ftp

Тут ми підключаємося і посилаємо команду LIST сервера FTP. Це робиться за допомогою виклику методу retrlines нашого об'єкта ftp. Метод retrlines виводить результат команди, яку ми викликали. В даному прикладі ми викликали команду LIST. яка витягує список файлів і \ або папок спільно їх відповідною інформацією та виводить їх. Далі ми використовували команду cwd. щоб змінити нашу робочу директорію на іншу папку і виконуємо команду LIST ще раз, щоб побачити, що в цій папці. Ви можете також використовувати функцію dir вашого об'єкта ftp для отримання списку даної папки.

Завантаження файлів через FTP

Цей приклад дуже схожий на попередній. Вам потрібно оновити його, для відповідності з обраною локацією завантаження. Перша частина цього коду, в цілому, залишається незмінною, але далі ви повинні помітити, що ми викликаємо nlst. який дає нам список назв файлів і каталогів. Ви можете передати цю команду каталогу заради списку, або просто викликати її, після чого він вкаже, що вам потрібен список даного каталогу.

Зверніть увагу на те, що команда nlst не вказує нам на те, як виконувати диференціацію між файлами і каталогами з її результатів. Хоча в даному прикладі це не так вже й важливо. Це відноситься до більш складним скриптів. У будь-якому випадку, дана команда зациклиться над виданими списком і спробує завантажити файли. Якщо так вийшло, що наш «файл» насправді є каталогом, то ми отримаємо порожній файл на нашому диску з тією ж назвою, що і у каталогу на FTP сервері. Також існує команда MLSD. яку ви можете викликати за допомогою методу mlsd. але її підтримують не всі FTP сервера. А з тими, які підтримують, ви можете помітити відмінності між ними.

Завантаження файлів на FTP сервер

Ще одне важливе питання, яким ви можете задатися при роботі з FTP сервером, це завантаження файлів ftplib. З Python ви можете і це! Існує два методи, користуючись якими ви можете завантажувати файли:

  • storlines - для завантаження текстових файлів (TXT, HTML, RST)
  • storbinary - для завантаження бінарних файлів (PDF, XLS, etc)

Давайте подивимося на прикладі, як ми будемо це робити:

Схожі статті