Python Lernhandbuch

Kapitel 13: SFTP-Server anbinden

Übung im Browser prüfbar

Schreibe sftp_holen.py, das:

  1. alle .csv-Dateien im Server-Ordner upload in den lokalen Ordner eingang/ herunterlädt (Ordner anlegen, falls nötig),
  2. jede erfolgreich heruntergeladene Datei auf dem Server in den Ordner upload/archiv verschiebt (Ordner anlegen, falls nötig),
  3. Dateien überspringt, die lokal schon vorhanden sind, und das mit logging meldet,
  4. Zugangsdaten aus Umgebungsvariablen liest.

Beim Ausführen läuft ein SFTP-Übungsserver; SFTP_HOST, SFTP_PORT, SFTP_USER und SFTP_PASSWORD sind gesetzt, und sein Host Key steht in ~/.ssh/known_hosts. Nutze also load_system_host_keys() mit RejectPolicy() wie im Kapitel. Nach dem Lauf siehst du, welche Dateien auf dem Server und lokal liegen.

📂 Dein SFTP-Übungsserver

Beim Ausführen startet ein SFTP-Server nur für dich. Er enthält anfangs ein paar Beispieldateien in upload/. Server-Ordner und dein lokaler Arbeitsordner (mit eingang/) bleiben zwischen den Läufen erhalten. Die Prüfung nutzt jedes Mal einen frischen Server.

✓ So wird geprüft
  • ○ Alle .csv-Dateien aus upload landen in eingang/
  • ○ Geholte Dateien werden nach upload/archiv verschoben
  • ○ Ein vorhandener Ordner upload/archiv stört nicht
  • ○ Lokal vorhandene Dateien werden übersprungen und per logging gemeldet
  • ○ Ein zweiter Lauf ist harmlos
  • ○ Zugangsdaten kommen aus Umgebungsvariablen
  • ○ Unbekannte Server werden abgelehnt (Host Key wird geprüft)
sftp_holen.py
Eingaben für „Ausführen“ (input und Argumente)