ftp upload

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Und abgesehen vom Hin- und Herscrollen kann man auch besser in Teilstücken denken, wenn diese klar benannt sind. Zum einen muss man bei guten sprechenden Namen häufig gar nicht erst in die Funktion reingucken bzw kann dies später machen, weil die Aufgabe der Funktion grob erraten werden kann und zum anderen dient so ein Name prima als Gedächtnisstütze, um den Funktionsinhalt gedanklich wieder schnell abrufen zu können.
Gremlin
User
Beiträge: 166
Registriert: Freitag 28. Mai 2010, 23:49

So, hab nun versucht möglichst alles zu berücksichtigen und glaube das auch geschafft zu haben. argparse ist jetzt auch drin. ;) (Auch wenn ich gefühlt genauso lang gebraucht habe die Doku durchzuarbeiten, wie meine eigene Funktion zu schreiben. :roll: )

ftpupload.py
lunar hat geschrieben:

Code: Alles auswählen

dirs = [d for d in dirs if not d.startswith('.')]
Das allerdings geht nicht. os.walk verwendet die Referenz und nicht den Namen. (Ist mir auch erst nach einiger Zeit klar geworden :roll: )

Zusätzlich hab ich auch noch TLS/SSL und SSH Funktionalität eingebaut und ein paar Bugs gefixt. (Auch wenn der Funktionsumfang von SSH sicher (noch?) nicht vollständig implementiert ist.)


Ist es eigentlich möglich, Einträge im PasteBin zu löschen?
lunar

@Gremlin: Aha, ich habe nicht bemerkt, dass diese Liste von "os.walk()" kam, bzw. dass Du diese Liste verändern möchtest, um "os.walk()" daran zu hindern, versteckte Verzeichnisse zu durchsuchen. In diesem Fall aber musst Du über eine Kopie der Liste iterieren, man kann nicht gleichzeitig iterieren und aus derselben Liste Elemente entfernen.

Den "Namen" kann "os.walk()" im Übrigen gar nicht "verwenden", da der Funktionskörper und der Aufrufer getrennte, vollkommen isolierte Namensräume haben. Das ist der Unterschied zwischen dem Objekt und seinem Namen.
Gremlin
User
Beiträge: 166
Registriert: Freitag 28. Mai 2010, 23:49

lunar hat geschrieben:Aha, ich habe nicht bemerkt, dass diese Liste von "os.walk()" kam, bzw. dass Du diese Liste verändern möchtest, um "os.walk()" daran zu hindern, versteckte Verzeichnisse zu durchsuchen.
Natürlich, war falsch formuliert :)
lunar hat geschrieben:In diesem Fall aber musst Du über eine Kopie der Liste iterieren, man kann nicht gleichzeitig iterieren und aus derselben Liste Elemente entfernen.
Grrr... Ja, danke. Wär mir wohl auch erst sonst irgendwann aufgefallen :roll:
Gremlin
User
Beiträge: 166
Registriert: Freitag 28. Mai 2010, 23:49

Da mir letzte Woche aufgefallen ist, dass hier die Möglichkeit fehlt den ASCII Übertragungsmodus zu aktivieren, hab ich das doch glatt mal nachimplementiert. Außerdem ist mir aufgefallen, dass das hier sowieso noch eine veraltete Version ist. Hab nach dem letzten Mal total vergessen das neue Skript ins Pastebin zu packen..

Folgende Änderungen:
  • Neue --ascii Option.
  • Neue --type Option.
  • Neue --keepalive Option.
  • Und endlich den Bug den lunar zuletzt bemängelt hatte gefixt. :oops:
Ach, ich hab auch noch die alten Pastebin-links im ersten Post wieder eingetragen.
Gremlin
User
Beiträge: 166
Registriert: Freitag 28. Mai 2010, 23:49

Hab ichs doch glatt wieder vergessen hier einzutragen...

Kleines Update:
  • Den nervigen Fehler gefixt der sich meist mit der Meldung dass die gewünschten Zugriffsrechte nicht gesetzt werden konnten äußerte.
  • Ein paar kleinere Logikfehler gefixt bezüglich der Berücksichtigung des lokalen Verzeichnisbaumes.
  • Diverse Stellen im Code angepasst.
Antworten