2017-06-01 5 views
0

Ich muss Dateien vom Server abrufen und als nächstes in die Datenbank schreiben. Ich benutze:Getting None beim Versuch, pysftp zu verwenden, um Datei

with pysftp.Connection(host, username=username, password=password, cnopts=cnopts) as sftp: 
    sftp.chdir('path') 
    all_files = [file_name for file_name in sftp.listdir() if 'access' in file_name] 
    today_log = all_files[0] 
    all_files = all_files[1:] 
    df = df.append(sftp.get(str(today_log))) 

Aber es gibt None. Wie kann ich Inhalt aus einer Datei erhalten und in einen Dataframe schreiben?

+0

Was gibt 'None' zurück? – martineau

+0

@martineau Inhalt der Datei ist leer und es gibt 'None' zurück, aber es wird nicht leer. Ich muss das lesen und zum Datenrahmen hinzufügen –

+0

Was ist der Wert von 'all_files'? – errata

Antwort

0

Wenn ich Ihre Frage richtig verstanden habe, möchten Sie die Datei vom SFTP-Server in eine Variable/Speicher lesen.

Dafür müssen Sie .getfo verwenden, wie:

flo = BytesIO() 
sftp.getfo(remotepath, flo) 

Alternativ verwenden paramiko Bibliothek direkt (ohne den pysftp Wrapper).
Siehe Read a file from server with ssh using python.

Verwandte Themen