我有一个用例,我只想读取我的 sftp 服务器之一中存在的大型 CSV 文件的前 5 行,并且我不想下载完整的文件来只读取前 5 行。我在 Python 中使用
pysftp
与我的 SFTP 服务器交互。我们有什么方法可以只下载文件的块而不是下载pysftp
中的完整文件吗?
如果Python中有任何其他库或任何我可以使用的技术,请指导我。谢谢
首先,不要使用pysftp。这是一个没有维护的死项目。使用Paramiko 代替。请参阅 pysftp 与 Paramiko。
SFTPClient.open
方法(或等效的 pysftp Connection.open
)打开表示远程文件的类文件对象,然后像使用它一样您正在从任何本地文件访问数据:
.seek
将读取指针设置为所需的偏移量。.read
读取数据。with sftp.open("/remote/path/file", "r", bufsize=32768) as f:
f.seek(offset)
data = f.read(count)
为了
bufsize
的目的,请参阅: