ftp upload
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.
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. )
ftpupload.py
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?
ftpupload.py
Das allerdings geht nicht. os.walk verwendet die Referenz und nicht den Namen. (Ist mir auch erst nach einiger Zeit klar geworden )lunar hat geschrieben:Code: Alles auswählen
dirs = [d for d in dirs if not d.startswith('.')]
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?
@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.
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.
Natürlich, war falsch formuliertlunar 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.
Grrr... Ja, danke. Wär mir wohl auch erst sonst irgendwann aufgefallenlunar 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.
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:
Folgende Änderungen:
- Neue --ascii Option.
- Neue --type Option.
- Neue --keepalive Option.
- Und endlich den Bug den lunar zuletzt bemängelt hatte gefixt.
Hab ichs doch glatt wieder vergessen hier einzutragen...
Kleines Update:
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.