Я пытаюсь прочитать файл CSV на SFTP в моей памяти Python. Я попробовал следующее, которое отлично работает для FTP-соединения, но не для SFTP.
Например, я хочу повторить:
df = pd.read_csv(...)
Но не сохраняя его сначала локально (причина в том, что я хочу запустить его как облачную функцию, а затем не хочу, чтобы локальные файлы были в моем кэше).
Как я могу сделать это по-другому?
def read_file_sftp_local_memory(sftp, path, filename):
flo = BytesIO()
path_query = "".join(['RETR ', path, '/', filename])
sftp.retrbinary(path_query, flo.write)
flo.seek(0)
return flo
Я пробовал также следующее:
def read_file_csv(sftp, path, filename):
# Download
sftp.get("/".join( os.path.join(path, filename) ), filename)
# Read
df = pd.read_csv(filename)
# Delete
os.remove(filename)
# Return
return df
Но это вернулось:
Ошибка:
raise IOError(text)
OSError: Failure