Hallo liebe Pythongemeinde,
ich will gerade meine ersten Gehversuche in Python unternehmen und habe dabei auch schon eine Idee aber noch ein paar Problemchen, vielleicht könnt ihr mir ja dabei helfen. Ich will ein Skript schreiben, das auf Windows läuft und folgendes in ein lokales Zielverzeichnis kopieren kann:
* Dateien von einem versteckten Ordner im lokalen Windows Benutzerverzeichnis (Pfad "C:\Users\User_xy\.GeheimerOrdner\Unterordner1" )
Bei meinen ersten Versuchen hat das leider nicht geklappt. Ich habe hier das Phänomen, dass der Windows Ordner laut Dateistruktur im Arbeitsplatz/WinExplorer "Benutzer" heißt - wenn ich aber den Pfad einer Datei bzw. eines Ordners darin kopiere, dann heißt dieser Ordner "Users". Vermutlich liegts da dran, kennt das Problem wer bzw. weiß wie man es umgeht?
* Dateien von einem Linuxserver kopieren mit dem man sich erst verbinden muss
Wie gehe ich das an? Gibt es hier irgendeine Schnittstelle in Python die ich da bedienen kann, z.B. über das SCP Protokoll?
Gibt es auch eine Loginmöglichkeit mit anschließendem Kopieren?
* Dateien von einem angeschlossenen WindowsMobile Gerät das mit ActiveSync verbunden ist kopieren. (Pfad "Computer\Pocket_PC\\\Ordnerxy")
Hier nimmt es oft sehr kryptische Pfade wenn ich copy&paste des Pfades mache, nicht den oben genannten
Danke schon mal für eure Hilfe
Multifunktionales Kopierskript
Zur ersten Frage: das Verzeichnis des aktuellen Benutzers ist in der Umgebungsvariable HOMEPATH gespeichert:
sollte alles sein, was du benoetigst. Wenn du einen *anderen* User haben moechtest, koenntest du noch ein "../Username" dazwischenschieben - denke ich. Es gibt bestimmt auch noch andere Moeglichkeiten, aber vielleicht reicht das erstmal.
Und zur zweiten Frage: es gibt das Projekt"paramiko", das musst du installieren und kannst dann SSH/SCP nutzen.
Zum dritten habe ich keinerlei Kenntnisse.
Code: Alles auswählen
import os
path = os.path.join(os.environ["HOMEPATH"], ".geheimer_ordner")
Und zur zweiten Frage: es gibt das Projekt"paramiko", das musst du installieren und kannst dann SSH/SCP nutzen.
Zum dritten habe ich keinerlei Kenntnisse.
Danke, das mit dem ersten Punkt hat funktioniert, kann man nun quasi abhaken.
Die Möglichkeit mit "paramiko" werde ich prüfen und mich einlesen.
Gibt es sonst wirklich keine native Möglichkeit einen Login mit SSH/SCP/(S)FTP zu machen?
Die Möglichkeit mit "paramiko" werde ich prüfen und mich einlesen.
Gibt es sonst wirklich keine native Möglichkeit einen Login mit SSH/SCP/(S)FTP zu machen?
Ich werde es bei Gelegenheit hiermit versuchen und Rückmeldung geben:
Das sieht zumindest mal recht einfach und übersichtlich aus..
Code: Alles auswählen
#http://pysftp.readthedocs.io/en/release_0.2.9/
import pysftp
with pysftp.Connection('hostname', username='me', password='secret') as sftp:
with sftp.cd('public'): # temporarily chdir to public
sftp.put('/my/local/filename') # upload file to public/ on remote
sftp.get('remote_file') # get a remote file
@Sirius: Ich hab nicht gesagt, dass mir Paramicos sFTP nicht gefällt. Ich hab mir beides kurz mal angeschaut und pysftp schien mir etwas einfacher zu sein - kann mich auch täuschen. Aber Paramico wäre ja auch ein weiteres Paket das ich importieren muss? Welche Vorteile hat Paramicos sFTP gegenüber pysftp?
Mir geht es rein um den Login auf den Server und dem anschließenden abziehen von Dateien/Ordnern dort, nicht mehr.
Mir geht es rein um den Login auf den Server und dem anschließenden abziehen von Dateien/Ordnern dort, nicht mehr.
@Sirius:
Hab beides nun ausprobiert, paramico und pysftp - funktioniert beides wunderbar. Ist denke ich geschmacksache was man nun lieber will. Danke trotzdem.
Habe nun alle oben genannten Punkte umgesetzt, bis auf den Punkt mit dem ActiveSync Gerät, hier komme ich einfach nicht weiter und finde auch kein passendes Modul dafür.
Im Windows zeigt es den Pfad ganz normal wie folgt an: Computer\Pocket_PC\\\Program Files
Diesen Pfad findet das Skript aber nicht. Habe auch Computer\\Pocket_PC\\\\Program Files ohne Erfolg probiert... Dachte vielleicht mach ich mit den Slashes was falsch...
Was mich dann verwirrt ist, wenn ich den Pfad mit einem Windows Plugin kopiere das den Pfad ausliest und in die Zwischenablabge kopiert, da kommt dann folgendes bei raus:
Hab beides nun ausprobiert, paramico und pysftp - funktioniert beides wunderbar. Ist denke ich geschmacksache was man nun lieber will. Danke trotzdem.
Habe nun alle oben genannten Punkte umgesetzt, bis auf den Punkt mit dem ActiveSync Gerät, hier komme ich einfach nicht weiter und finde auch kein passendes Modul dafür.
Im Windows zeigt es den Pfad ganz normal wie folgt an: Computer\Pocket_PC\\\Program Files
Diesen Pfad findet das Skript aber nicht. Habe auch Computer\\Pocket_PC\\\\Program Files ohne Erfolg probiert... Dachte vielleicht mach ich mit den Slashes was falsch...
Was mich dann verwirrt ist, wenn ich den Pfad mit einem Windows Plugin kopiere das den Pfad ausliest und in die Zwischenablabge kopiert, da kommt dann folgendes bei raus:
Da bin ich nun etwas ratlos...::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\\?\activesyncwpdenumerator#umb#2&306b293b&0&activesyncwpddevice-ab5f2fe4-d830-f1e7-d806-33298de2d8ee-#{6ac27878-a6fa-4155-ba85-f98f491d4f33}\f%7CS%7C%5C\f%7CF%7C%5CProgram%20Files%5C
Hallo Helle,
zu WindowsMobile und ActiveSync kann ich Dir nicht wirklich weiterhelfen.
Ein Windows Exchange Server benutzt auch ActiveSync und hierfür gibt es ein Python Modul.
siehe https://github.com/solbirn/pyActiveSync.
Ob Dir das jetzt weiterhilft kann ich nicht beurteilen, aber vielleicht liefert es Dir ein paar neue Ideen.
zu WindowsMobile und ActiveSync kann ich Dir nicht wirklich weiterhelfen.
Ein Windows Exchange Server benutzt auch ActiveSync und hierfür gibt es ein Python Modul.
siehe https://github.com/solbirn/pyActiveSync.
Ob Dir das jetzt weiterhilft kann ich nicht beurteilen, aber vielleicht liefert es Dir ein paar neue Ideen.