Python 如何在不下载文件的情况下从 SFTP 服务器获取数据?
How to take data from SFTP server without downloading files in Python?
我有一个 SFTP 服务器。我可以通过 transferring/downloading 个文件获取数据。有什么办法可以不下载文件吗?
我的代码如下:
# Connection to the SFTP server
with pysftp.Connection(hostname, username, passowrd, port) as sftp:
with sftp.cd('directory'):
sftp.get('filename.txt')
此代码将文件下载到我的本地计算机。
是也不是。您可以使用来自远程(SFTP)服务器的数据,而无需将文件存储到本地磁盘。
但是如果不下载 就无法在本地使用数据。这不可能。您必须传输数据才能使用它们——至少传输到本地机器的内存中。
见A way to load big data on Python from SFTP server, not using my hard disk。
我的回答是关于 Paramiko 的。但是 pysftp 只是 Paramiko 的薄包装。它的 Connection.open
is directly mapped to underlying Paramiko's SFTPClient.open
。所以你可以继续使用pysftp:
with sftp.open('filename.txt', bufsize=32768) as f:
# use f as if you have opened a local file with open()
尽管我建议您不要这样做:。
我有一个 SFTP 服务器。我可以通过 transferring/downloading 个文件获取数据。有什么办法可以不下载文件吗?
我的代码如下:
# Connection to the SFTP server
with pysftp.Connection(hostname, username, passowrd, port) as sftp:
with sftp.cd('directory'):
sftp.get('filename.txt')
此代码将文件下载到我的本地计算机。
是也不是。您可以使用来自远程(SFTP)服务器的数据,而无需将文件存储到本地磁盘。
但是如果不下载 就无法在本地使用数据。这不可能。您必须传输数据才能使用它们——至少传输到本地机器的内存中。
见A way to load big data on Python from SFTP server, not using my hard disk。
我的回答是关于 Paramiko 的。但是 pysftp 只是 Paramiko 的薄包装。它的 Connection.open
is directly mapped to underlying Paramiko's SFTPClient.open
。所以你可以继续使用pysftp:
with sftp.open('filename.txt', bufsize=32768) as f:
# use f as if you have opened a local file with open()
尽管我建议您不要这样做: