Paramiko na SFTPClient najwyraźniej nie ma metody exists
. To jest moja obecna implementacja:Sprawdź, czy ścieżka na zdalnym hoście za pomocą paramiko
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
Czy jest lepszy sposób to zrobić? Sprawdzanie podłańcucha w komunikatach o wyjątkach jest dość brzydkie i może być niewiarygodne.
Prawdopodobnie jest to dobry sposób, żeby zrobić ponieważ stat() w sposób wolny istniejący plik na serwerze SFTP za pośrednictwem Paramiko podniesie ten wyjątek z kodem błędu errno.ENOENT: https://github.com/paramiko/paramiko/blob/master/paramiko/sftp_client.py#L722 – Devy