一种从SFTP服务器在Python上加载大数据的方法,而不使用我的硬盘



由于我的硬盘内存不足,我将大数据上传到了SFTP服务器。如何访问Python中的服务器并加载它们进行分析?我只想在Python上工作,并再次将输出发送到服务器,而不是将它们下载到我的计算机上。

使用Paramiko库,您可以使用SFTPClient.open方法来检索与远程数据一起工作的类似文件的对象。然后,大多数Python API都可以使用这个类似文件的对象来代替本地文件句柄。

with sftp.open('filename.txt', bufsize=32768) as f:
# use f as if you have opened a local file with open()

有关一些现实生活中的示例,请参阅:

  • 使用PythonParamiko从SFTP服务器读取.csv文件到内存
  • 从SFTP服务器打开Astropy FITS文件
  • 将JSON文件直接转储到远程SSH连接中,而无需先将其存储在本地计算机中
  • 从SFTP文件中读取CSV/Excel文件,使用Pandas对这些文件进行一些更改,然后保存回
  • 使用pdfplumber和Paramiko从SFTP服务器读取PDF文件
  • 使用Paramiko将文件从SFTP传输到S3
  • 使用Python将文件直接从SFTP服务器上传到Google bucket

但您仍将下载数据。如果没有下载(使用网络带宽(,您就无法在本地处理远程数据。您将不会数据存储到本地文件系统。


对于bufsize=32768,请参阅读取用Python Paramiko SFTPClient打开的文件。打开方法很慢

访问https://pypi.org/project/pysftp/

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

访问http://docs.paramiko.org/en/stable/api/sftp.html

最新更新