使用Python Paramiko从SFTP服务器读取.csv文件到内存

4

我试图在Python内存中读取SFTP上的CSV文件。我尝试了以下方法,这对于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
1个回答

8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接