MC, 2025
Ilustracja do artykułu: FTP Python: Jak łatwo przesyłać pliki przez FTP w Pythonie?

FTP Python: Jak łatwo przesyłać pliki przez FTP w Pythonie?

Chcesz przesyłać pliki między komputerami lub serwerami, ale nie wiesz, jak się do tego zabrać? FTP, czyli File Transfer Protocol, to jedno z najstarszych, ale nadal bardzo popularnych rozwiązań do przesyłania plików przez internet. Dobrą wiadomością jest to, że w Pythonie mamy bardzo prostą możliwość korzystania z FTP, dzięki bibliotece ftplib. W tym artykule pokażę Ci, jak szybko nauczyć się korzystać z FTP w Pythonie i jak wykorzystać to w praktycznych przykładach!

Czym jest FTP i jak działa?

FTP (File Transfer Protocol) to standardowy protokół internetowy, który pozwala na przesyłanie plików między komputerami a serwerami. Jest to jeden z najstarszych protokołów używanych w Internecie, ale nadal bardzo popularny, szczególnie w aplikacjach, które wymagają przesyłania dużych plików. FTP działa w architekturze klient-serwer: klient (Twój komputer) łączy się z serwerem FTP, aby wysyłać lub pobierać pliki.

Typowy proces korzystania z FTP wygląda następująco:

  • Połączenie z serwerem FTP: Używasz nazwy użytkownika i hasła, aby zalogować się do serwera FTP.
  • Przesyłanie plików: Możesz wysyłać pliki na serwer (upload) lub pobierać pliki z serwera (download).
  • Zakończenie połączenia: Po zakończeniu transferu plików połączenie jest zamykane.

Jak połączyć się z serwerem FTP w Pythonie?

W Pythonie korzystamy z biblioteki ftplib, która jest wbudowaną biblioteką do obsługi protokołu FTP. Aby połączyć się z serwerem FTP, musisz znać jego adres, nazwę użytkownika i hasło (jeśli jest wymagane). Oto przykład kodu, który pokazuje, jak połączyć się z serwerem FTP i zalogować:

from ftplib import FTP

# Tworzymy obiekt FTP
ftp = FTP()

# Łączymy się z serwerem FTP
ftp.connect('ftp.domena.com', 21)

# Logowanie na serwerze
ftp.login('nazwa_uzytkownika', 'haslo')

# Połączono z serwerem FTP!
print("Połączono z serwerem FTP")

# Zakończenie połączenia
ftp.quit()

W tym przykładzie:

  • ftp.connect('ftp.domena.com', 21) - łączymy się z serwerem FTP, podając jego adres i port (domyślnie 21).
  • ftp.login('nazwa_uzytkownika', 'haslo') - logujemy się, podając naszą nazwę użytkownika i hasło do serwera.
  • ftp.quit() - kończymy połączenie po zakończeniu pracy z serwerem.

Jak pobrać plik z serwera FTP?

Teraz, kiedy połączyliśmy się z serwerem FTP, możemy przejść do bardziej praktycznych rzeczy, jak na przykład pobieranie plików z serwera. Aby pobrać plik, używamy metody retrbinary(), która pozwala na pobranie pliku w trybie binarnym. Oto jak to zrobić:

from ftplib import FTP

# Tworzymy obiekt FTP
ftp = FTP()

# Łączymy się z serwerem FTP
ftp.connect('ftp.domena.com', 21)

# Logowanie na serwerze
ftp.login('nazwa_uzytkownika', 'haslo')

# Pobieranie pliku z serwera
with open('plik_z_serwera.txt', 'wb') as plik:
    ftp.retrbinary('RETR plik_z_serwera.txt', plik.write)

# Po zakończeniu pobierania
print("Plik pobrany z serwera FTP")

# Zakończenie połączenia
ftp.quit()

W tym przykładzie:

  • ftp.retrbinary('RETR plik_z_serwera.txt', plik.write) - używamy polecenia FTP RETR, aby pobrać plik z serwera i zapisać go na naszym komputerze.
  • with open('plik_z_serwera.txt', 'wb') as plik: - otwieramy plik w trybie binarnym ('wb'), aby zapisać go lokalnie na dysku.

Jak wysłać plik na serwer FTP?

Wysyłanie plików na serwer FTP jest równie łatwe. Aby przesłać plik, używamy metody storbinary(). Poniżej znajdziesz przykład, który pokazuje, jak przesłać plik na serwer FTP:

from ftplib import FTP

# Tworzymy obiekt FTP
ftp = FTP()

# Łączymy się z serwerem FTP
ftp.connect('ftp.domena.com', 21)

# Logowanie na serwerze
ftp.login('nazwa_uzytkownika', 'haslo')

# Wysyłanie pliku na serwer
with open('lokalny_plik.txt', 'rb') as plik:
    ftp.storbinary('STOR lokalny_plik.txt', plik)

# Po zakończeniu wysyłania
print("Plik wysłany na serwer FTP")

# Zakończenie połączenia
ftp.quit()

W tym przypadku:

  • ftp.storbinary('STOR lokalny_plik.txt', plik) - używamy polecenia FTP STOR, aby przesłać plik na serwer.
  • with open('lokalny_plik.txt', 'rb') as plik: - otwieramy plik w trybie binarnym ('rb'), aby przesłać go na serwer.

Podstawowe operacje na plikach FTP

Poza przesyłaniem i pobieraniem plików, z poziomu FTP w Pythonie możemy także wykonywać inne operacje na plikach, takie jak:

  • Listowanie plików: Za pomocą metody nlst() możemy uzyskać listę plików i folderów na serwerze.
  • Tworzenie folderów: Jeśli chcemy utworzyć nowy folder na serwerze FTP, możemy użyć metody mkd().
  • Usuwanie plików: Usuwanie plików na serwerze FTP wykonujemy za pomocą metody delete().

Przykład – listowanie plików na serwerze FTP

from ftplib import FTP

# Tworzymy obiekt FTP
ftp = FTP()

# Łączymy się z serwerem FTP
ftp.connect('ftp.domena.com', 21)

# Logowanie na serwerze
ftp.login('nazwa_uzytkownika', 'haslo')

# Listowanie plików na serwerze
pliki = ftp.nlst()

# Wyświetlamy listę plików
print("Pliki na serwerze FTP:")
for plik in pliki:
    print(plik)

# Zakończenie połączenia
ftp.quit()

Podsumowanie

Praca z FTP w Pythonie dzięki bibliotece ftplib jest bardzo łatwa i intuicyjna. W tym artykule omówiliśmy podstawowe operacje, takie jak łączenie się z serwerem, pobieranie i wysyłanie plików oraz listowanie plików na serwerze. Dzięki tym umiejętnościom, możesz w prosty sposób automatyzować transfery plików między komputerami lub serwerami, co jest przydatne w wielu aplikacjach i skryptach.

Pamiętaj, że FTP to tylko jedno z rozwiązań do przesyłania plików – jeśli Twoje wymagania dotyczą bezpieczeństwa, możesz rozważyć użycie SFTP (SSH File Transfer Protocol), które jest bezpieczniejszą wersją FTP. Jednak dla wielu zastosowań FTP w Pythonie wciąż jest świetnym narzędziem do szybkiego transferu plików.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: