Prüfen Sie, ob ein Pfad existiert, auf einem remote-host mithilfe von paramiko
Paramiko ist SFTPClient anscheinend nicht ein exists
Methode. Dies ist meine aktuelle Umsetzung:
def rexists(sftp, path):
"""os.path.exists for paramiko's SCP object
"""
try:
sftp.stat(path)
except IOError, e:
if 'No such file' in str(e):
return False
raise
else:
return True
Gibt es einen besseren Weg, dies zu tun? Die Prüfung für substring in Ausnahme-Nachrichten ist ziemlich hässlich und unzuverlässig sein können.
InformationsquelleAutor Sridhar Ratnakumar | 2009-05-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen die
errno
- Modul für Konstanten definieren alle Fehlercodes. Außerdem ist es ein wenig klarer zu verwenden, dieerrno
Attribut die Ausnahme als die Erweiterung der__init__
args, so ich würde dies tun:InformationsquelleAutor Matt Good
Gibt es keine "exists" - Methode definiert für SFTP (nicht nur paramiko), so dass deine Methode ist gut.
Ich denke, dass die überprüfung der errno ist ein wenig sauberer:
InformationsquelleAutor JimB
Paramiko buchstäblich wirft
FileNotFound
InformationsquelleAutor jslay