Ciao sto usando python e sto provando a connettermi a sftp e voglio recuperare un file xml da lì e devo metterlo nel mio sistema locale, sotto è il codiceCome elencare tutte le cartelle ei file nella directory dopo aver effettuato la connessione tramite sftp in python
import paramiko
sftpURL = 'sftp.somewebsite.com'
sftpUser = 'user_name'
sftpPass = 'password'
ssh = paramiko.SSHClient()
# automatically add keys without requiring human intervention
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(sftpURL, username=sftpUser, password=sftpPass)
ftp = ssh.open_sftp()
files = ftp.listdir()
print files
qui connessione è successo pieno e ora voglio vedere tutte le cartelle e tutti i file e la necessità di entrare in a cartella richiesta per il recupero di file XML da lì.
Infine, il mio obiettivo è visualizzare tutte le cartelle e i file dopo essersi connessi al server sftp. Nel codice precedente avevo usato ftp.listdir()
attraverso il quale ho ottenuto output come qualche cosa come di seguito
['.bash_logout', '.bash_profile', '.bashrc', '.mozilla', 'testfile_248.xml']
Voglio sapere se questi sono gli unici file presenti?
E il comando che ho usato sopra è giusto per visualizzare anche le cartelle?
Qual è il comando per visualizzare tutte le cartelle ei file
Basandosi sul comportamento in stringa di 'SFTPAttributes' è un orribile, orribile hack. Perché non lo fai correttamente, e usi 'stat.S_ISDIR (lstatout.st_mode)'? –
@FakeName Sto provando a farlo e non capisco il tuo commento. –
@PANDAStack - 'ftp.lstat (i)' restituisce un'istanza della classe ['SFTPAttributes'] (https://github.com/paramiko/paramiko/blob/6978c7a0b8faa683b119de3a0c096be31ac4fdc9/paramiko/sftp_attr.py#L25). Il modo in cui questa risposta fa è dipendere da come la libreria ha scelto di avere il '__repr__' di' SFTPAttributes' * look *, che è un'interfaccia progettata ** interamente ** per il debug del programmatore, e probabilmente non è testata o garantita essere costante, anche attraverso i numeri di versione delle patch. –