Inhaltsverzeichnis
Python Es ist eine Sprache, die es uns ermöglicht, die Arbeit mit den verschiedenen Funktionalitäten von Betriebssystemen auf einfache und intuitive Weise zu integrieren, dank der großen Anzahl von Bibliotheken und Dokumentationen, die im Netz kostenlos und gut erklärt sind.Einer der stärksten Punkte dieser Sprache ist die Arbeit mit Netzwerkprotokollen, unter denen wir die erwähnen können FTP und etwas gebräuchlicheres wie E-Mail, damit können wir Programme oder Anwendungen entwickeln, die es uns ermöglichen, Dateien automatisiert auf entfernte Computer hochzuladen, wenn wir dies wünschen, ohne auf andere Tools außerhalb des Ökosystems von zurückgreifen zu müssen Python.
Das Protokoll FTP ermöglicht es uns, Dateiübertragungen über eine Verbindung in einem Netzwerk durchzuführen. Normalerweise ist es das Protokoll, das wir verwenden, um eine Remote-Verbindung zu Servern herzustellen und auf diese Weise Dateien zu manipulieren, normalerweise das Port 21Dies ist jedoch ganz dem Geschmack des Verbrauchers überlassen. Wenn wir also einen anderen Port sehen, ist es nicht verwunderlich, dass es sich um eine benutzerdefinierte Installation handelt.
Um mit diesem Protokoll interagieren zu können, benötigen wir zwei Dinge: Das erste ist ein Server, der in der Luft ist und für unser Netzwerk verfügbar ist, er kann sich im selben Netzwerk oder vielleicht im Internet befinden. Das zweite, was benötigt wird, ist ein Client, der Informationen von diesem Server senden und empfangen kann. Dieser Client muss die Möglichkeit haben, die vom Dienst angegebenen Ports und die eingerichtete Authentifizierung zu verwenden.
Machen Sie einen Kunden in Python dass ich eine Verbindung herstellen kann FTP Von Grund auf ist es möglich, jedoch wäre der Aufwand dafür erheblich und am Ende vielleicht vergeblich, wenn wir nicht etwas Besonderes brauchen.
Um Unannehmlichkeiten und unnötige Entwicklung zu vermeiden Python stellt uns eine Bibliothek zur Verfügung, die uns bereits bei einem Großteil der Arbeit hilft. Es handelt sich dabei um ftplib, enthält es vollständige und bereits getestete und verfeinerte Methoden, die die Kommunikation über das Dateiübertragungsprotokoll erleichtern FTP.
Wie benutzt man die Bibliothek?Um diese Bibliothek zu verwenden, müssen wir sie einfach mit der Anleitung in unser Programm aufnehmen importieren und dann beginnen wir unsere normale Entwicklung. Im folgenden Beispiel werden wir ein kleines Client-Programm erstellen, das sich mit einem Server verbinden kann FTP, in diesem Fall werden wir den Service nutzen Kernel.org das ist eine Linux-Website und damit werden wir die verfügbaren Dateien auflisten.
Wir wählen diesen Server, weil er keine Authentifizierung benötigt und es uns ermöglicht, den anonymen Modus zu verwenden. Schauen wir uns dann den Code an und dann werden wir die entsprechende Erklärung machen, die einzige Voraussetzung, die wir brauchen, ist die zu haben Python 2.7 und Internetverbindung:
#! /usr/bin/env python PATH_FTP_SERVER = 'ftp.kernel.org' import ftplib def client_ftp_connection (Server, Benutzername, Mail): # Verbindung öffnen ftp = ftplib.FTP (Server, Benutzername, Mail) # wir listen die Dateien im Verzeichnis /pub ftp.cwd ("/pub") print "Files available in% s:"% server files = ftp.dir () print files ftp.quit() if __name__ == '__main__': client_ftp_conexion ( server = FTP_SERVER_PATH, Benutzername = 'anonymous', mail='[email protected]',)
Als erstes definieren wir eine Variable in der Datei, die den Serverpfad enthält FTP zu dem wir die Verbindung herstellen wollen, in diesem Fall ist es ftp.kernel.org, von hier erhalten wir Kernel-Informationen Linux.
Nächster Akt machen wir das importieren aus der Buchhandlung ftplib oben, damit stellen wir die Möglichkeit sicher, alle notwendigen Methoden zu verwenden, um sich mit dem oben definierten Server zu verbinden, dafür verwenden wir die Methode FTP des gleichen, dort werden wir die Route, den Benutzernamen und eine E-Mail übergeben.
Verbindung prüfenUm zu testen, ob die Verbindung funktioniert, verwenden wir den Befehl cwd zu einem Verzeichnis navigieren und dann mit dir () Wir können die Dateien in diesem Ordner auf dem Server auflisten, sobald wir mit unserer Prozedur fertig sind, rufen wir die Methode auf Verlassen () um die Sitzung zu beenden und die Verbindung zu schließen.
Dieser Code muss in eine Datei mit dem gewünschten Namen mit der Erweiterung eingefügt werden .py damit unser Dolmetscher Python kann es ausführen, dafür führen wir es in dem Pfad, in dem sich unsere Datei befindet, mit dem reservierten Wort aus Python und der Name unserer Datei, was uns etwas Ähnliches geben sollte, was wir auf dem folgenden Bildschirm sehen:
VERGRÖSSERN
Obwohl wir im vorherigen Beispiel die Dateien eines Servers auflisten können, was sehr nützlich ist, um Informationen von ihnen zu erhalten, ist etwas Mächtigeres in der Lage Daten hochladen. Die Dienstprogramme davon sind vielfältig, wir können zum Beispiel die Übertragung von Dateien zählen, die aus einer Anwendung zur Verarbeitung von einer anderen stammen, oder vielleicht Backups eines Computers in einem anderen, der sich im Netzwerk befindet, erstellen. Natürlich gibt es heute viel elegantere Lösungen, es reicht jedoch nicht aus, dies mit einer selbst entwickelten Anwendung zu erreichen.ErfordernisDie zusätzliche Anforderung, die wir für diese Übung benötigen, ist a lokaler FTP-Server in unserem Testgerät, dafür können wir ein Linux-System verwenden wu-ftp, aber wenn wir auf der Plattform sind Fenster Wir können Filezilla Server verwenden, der kostenlos verwendet werden kann.
Welchen Server wir auch verwenden können, wir müssen über Berechtigungen oder die Möglichkeit des anonymen Zugriffs verfügen. Im folgenden Code werden wir jedoch besser sehen, wie wir Dateien hochladen können.
Wir müssen einen Benutzer und ein FTP-Konto erstellen In dem lokalen Server, den wir erstellen, um dieses Beispiel verwenden zu können, funktioniert es auch mit Remote-Servern, wir müssen nur sicherstellen, dass unsere Anmeldeinformationen auf dem neuesten Stand sind. Dann können wir folgenden Code verwenden:
#! / usr / bin / env python import os import argparse import ftplib import getpass SERVER_FTP_LOCAL = 'localhost' FILE_TO_UPLOAD = 'example.txt' def upload_ftp (Server, Benutzername, Passwort, upload_file): print "Verbindung zum Server:% s" % server ftp = ftplib.FTP (server) print" Anmelden als: user =% s "% username ftp.login (Benutzername, Passwort) ext = os.path.splitext (upload_file) [1] if ext in ( ". txt", ".htm", ".html"): ftp.storlines ("STOR" + upload_file, open (upload_file)) sonst: ftp.storbinary ("STOR" + upload_file, open (upload_file, "rb" ), 1024) print "Uploaded file:% s"% upload_file if __name__ == '__main__': parser = argparse.ArgumentParser (description = 'Beispiel für das Hochladen von FTP-Dateien') parser.add_argument ('- server', action = "store" , dest = "server", default = SERVER_FTP_LOCAL) parser.add_argument ('- file', action = "store", dest = "file_upload", default = FILE_TO_UPLOAD) parser.add_argument ('- user' , action = "store" , dest = "n user_name ", default = getpass.getuser ()) application_parameters = parser.parse_args () server, upload_file, user_name = application_parameters.server, application_parameters. upload_file, application_parameters.user_name Passwort: Passwort: getpass.getpass the (prompt =") Passwort: getpass.getpass the (prompt = ") upload_ftp (Server, Benutzername, Passwort, upload_file)
In diesem Beispiel wird zusätzlich zum Importieren der Bibliothek ftplib, wir importieren auch Bibliotheken Sie um auf Betriebssystembefehle zugreifen zu können, verwenden wir zusätzlich argparse Ja erhaltenpass um die Verwendung der vom Benutzer eingegebenen Parameter zu verarbeiten und so unser Programm dynamischer zu gestalten.
Dann definieren wir ein paar Konstanten, mit denen wir den Server einrichten und eine Beispieldatei, die wir in den von unserem Benutzer definierten Ordner hochladen werden FTP. Der nächste Schritt ist das Öffnen der Verbindung FTPIn diesem Fall verwenden wir jedoch einen Benutzernamen und ein Passwort, da wir theoretisch auf einen Server mit nicht anonymer Authentifizierung zugreifen, dies hauptsächlich aus Sicherheitsgründen und auch um zu zeigen, dass unser Beispiel in anderen Fällen funktioniert.
Wir werten weiter die Erweiterung unserer Datei aus, damit sehen wir, ob es sich um eine Textdatei handelt, dafür verwenden wir storlines (), mit denen wir den Inhalt derselben nicht beeinflussen, wenn es sich um eine andere Erweiterung als die definierte handelt, verwenden wir die Methode storbinär () um die Datei in ihrer ursprünglichen Form mit ihrem binären Inhalt übergeben zu können, damit sie nicht beschädigt wird und weiter verwendet werden kann.
Schließlich verwenden wir argparse () um die Argumente übernehmen zu können, die ein Benutzer zur Verwendung unseres Programms einführen kann, mit der Ausnahme, dass, wenn keine Werte platziert werden, die in unserem Programm definierten globalen Werte verwendet werden. Wir führen unser Programm aus und wenn alles richtig gelaufen ist, können wir die folgende Ausgabe in unserer Konsole sehen:
VERGRÖSSERN
Wir beachten, dass in diesem Fall der Benutzerparameter der einzige ist, den wir verwenden, da wir auf unserem Server einen Benutzer namens . haben Test-Python, dann geben wir das diesem Benutzer zugewiesene Passwort ein und der Upload der Datei wird effektiv durchgeführt.Damit beenden wir dieses Tutorial, wir haben gelernt, wie man eine Verbindung herstellt FTP aus einem Programm gemacht in Python, hier ist es wichtig zu beachten, wie mit Methoden, die aus der Standardbibliothek von Python es ist uns gelungen, Funktionalitäten zu realisieren, für die wir sonst viel Zeit gebraucht hätten, abgesehen von der großen Menge an Code, die generiert werden müsste. Wir empfehlen, die offizielle Dokumentation der Buchhandlung weiter zu untersuchen ftplib, Auf diese Weise werden wir unsere Fähigkeiten in der Welt deutlich steigern Python, und öffnet so die Türen, um in dieser hart umkämpften technologischen Welt als Entwickler effektiver zu sein.