Ich möchte alle Dateien in einem bestimmten Verzeichnis auf einem Remote-Server löschen, mit dem ich bereits über paramiko verbunden bin. Ich kann die Dateinamen jedoch nicht explizit angeben, da diese davon abhängen, welche Version der Datei ich vorher dort abgelegt habe.Wie lösche ich alle Dateien im Verzeichnis auf dem Remote-Server in Python?
Hier ist, was ich versuche, die Zeile unter dem #TODO zu tun ... ist der Anruf Ich versuche, wo remoteArtifactPath so etwas wie „/ opt/foo/*“ Jede Idee
ssh = paramiko.SSHClient()
ssh.load_host_keys(os.path.expanduser(os.path.join("~", ".ssh", "known_hosts")))
ssh.connect(server, username=username, pkey=mykey)
sftp = ssh.open_sftp()
# TODO: Need to somehow delete all files in remoteArtifactPath remotely
sftp.remove(remoteArtifactPath+"*")
# Close to end
sftp.close()
ssh.close()
ist Wie kann ich das erreichen?
Dank
Ich schlage vor, mit '' 'os.path.join (remoteArtifactPath, Datei)' '' statt '' 'sftp.remove (remoteArtifactPath + Datei)' '', weil '' 'os.path. join() '' 'ist plattformunabhängig. Zeilentrennzeichen können sich je nach Plattform unterscheiden und os.path.join stellt sicher, dass Pfade unabhängig von der Plattform korrekt generiert werden. – 9monkeys