如何使用pysftp从SFTP下载文件?

时间:2018-10-09 19:55:07

标签: python pysftp

我有一个SFTP服务器,其中包含一组文件夹。我想从这些文件夹之一下载文件。

有人可以帮我提供python代码吗?

我应该从哪里开始?

2 个答案:

答案 0 :(得分:1)

Michael Powers的补充。

如果您的服务器是一个帐户,而您的个人帐户是另一个帐户。  如果您的服务器帐户具有root权限,请遵循Michael的方法。  如果否,则可以使用io缓冲区下载该文件

    import io
    server_sftp = pysftp.Connection(host=test_host, username=server_account,
                              password=server_pwd, cnopts=cn_opts)
    your_user_sftp = pysftp.Connection(host=host_name, username = user_name,
                                password = user_pwd, cnopts=cn_opts)

    try:
        file_like=io.BytesIO()
        server_account.getfo(server_file_location,file_like)
        your_user_sftp.putfo(file_like, target_file_location)
    finally:
        flie_like.close()

    server_sftp.close()
    your_user_sftp.close()

答案 1 :(得分:0)

您是否尝试过示例in pysftp's documentation

import pysftp

with pysftp.Connection('hostname', username='me', password='secret') as sftp:
    with sftp.cd('public'):             # temporarily chdir to public
        sftp.put('/my/local/filename')  # upload file to public/ on remote
        sftp.get('remote_file')         # get a remote file